• 字典


    用于存储数据,存在大量数据,字典比列表快,将数据和数据之间进行关联

    字典是无序的,可变的

    逗号分隔算作一个元素

    # 定义字典
    dic = {'张三':88, '李四':66, '王五':97}
    print(dic)    
    # 字典中逗号分隔的叫做一个元素,"张三"是(键):88(值)-----键值对 
    
    dic = {'常鑫':10, '李文虎':20, '张宇':90, '大黑哥':80, True:123, (1,2,3):"好吃", [1,2]:"meet"}
    print(dic)
    
    字典的键:
        可哈希----不可变的数据类型(避免哈希冲突使用了 开放寻址法)
        不可哈希----可变的数据类型
        要求唯一----如果又重复的后边的值将前面的值覆盖
    
    字典的值:
        可以任意
    

    暴力添加

    dic = {"张三":11}
    dic["李文虎"] = 89      # 暴力添加
    print(dic)
    # 运行结果:{'张三': 11, '李文虎': 89}
    

    setdefault添加

    ”lisi“这个键去字典进行查询,如果不存在执行添加,如果存在就不添加了

    dic["lisi"] = 22
    print(dic)
    dic.setdefault("lisi",100)     # 存在不添加
    print(dic)
    # 运行都是结果:{'张三': 11, 'lisi': 22}
    
    dic.setdefault("lisi",100)       # 键和值中间是逗号
    print(dic)
    # 运行结果:{'张三': 11, 'lisi': 100}
    

    del—— 通过字典的键删除键值对,这里用的是【中括号】

    del dic["张三"]
    print(dic)
    

    pop—— 通过字典的键进行删除键值对 返回值:返回的是被删除的值

             print(dic.pop('黎明'))
    print(dic)
    

    clear

    dic = {"常鑫":[1,2,3],'李文虎': '89'}
    dic.clear()     # 清空
    print(dic)
    

    有则改,无则加

    # 暴力改,直接赋值
    dic = {"常鑫":[1,2,3],'李文虎': '89'}
    dic["常鑫"] = 'abc'
    dic['张宁'] = 111111     # 需注意这块格式【】= 值
    print(dic)
    
    # 更新,update
    dic1 = {"1":3,"5":9,"李文虎":100}
    dic1.update(dic) 
    #update括号中的字典级别高于update前面的字典,所以输出dic1,然后输出dic2 
    print(dic1)
    # 打印结果:{'1': 3, '5': 9, '李文虎': '89', '常鑫': 'abc', '张宁': 111111}
    

    循环获取的是字典中每个键值对的键

    # for 循环
    dic1 = {'1':100, '2':90, '3':80}
    for i in dic1:
        print(i)       # 返回字典的键
    

    通过键获取值,如果不存在字典中,返回None

    print(dic.get("11"))
    # 返回结果None,不报错
    

    通过获取键值,如果键不存在字典中报错

    print(dic("11"))
    # 报错,KeyError
    

    获取所有键和值

    dic1 = {"1":3, "5":9, "李文虎":100}
    for i in dic1:
        # print(i)         # 输出的是键
        print(i, dic1.get(i))      # 获取所有的键和值
    

    获取字典中所有的键

    for i in dic1.keys():
        print(i)
    

    获取字典中所有的值

    for i in dic1.values():
        print(i)
    

    items——— 以列表格式返回可遍历的(键,值)

    print(dic1.items())
    

    循环遍历输出键值对

    ​```python
    

    for i in dic1.items():
    print(i[0], i[1])
    ```

    解构

    a,b = 10,12
    print(a)
    print(b)
    
    a = 10
    b = 20
    a,b = b,a
    print(a,b)
    
    a,b = [1,2]
    print(a,b)
    
    a,b = (3,4)
    print(a,b)
    
    a,_,b = (3,4,5)
    print(a,b)   # 等号后边的值 和 前面的变量名 要一一对应
    
    a = 10,12  # 本质就是一个元组
    print(a)
    
    a,b = "23"
    print(a,b)
    
    a,b = {"1":"a","2":"b"}
    print(a,b)
    
    for i in dic1.items():
        print(i)
    
    for k,v in dic1.items():
        print(k,v)    # 获取每个元素的键和值
    

    嵌套

    dic = {1001:["周杰伦","林俊杰"],
           1002:{"汪峰":{"前妻1":["大烧饼"],"前妻2":["熊大","熊二"],"国际章":"肉丝"}},
           1003:{"陈冠希":["阿娇","阿萨","张柏芝"]},
           1004:{"韦小宝":[{"教主夫人":["教主"]},
                        {"阿珂":"刺客"},
                        {"双儿":"天地会"},
                        {"爱心觉罗建宁":"公主"},
                        {"独臂神尼":{"韦小宝师父":{"兰陵王":"隐身"},"花木兰":[
                               "唧唧复唧唧","木兰是战士",{"爸爸":["花和尚"]}]
                                 }},
                        {"陈圆圆":"丈母娘"},{"穆建平":"小郡主"}]},
           1005:{"常鑫":["大黑哥","大烧饼","吃大煎饼","肉夹馍","自行车","井盖",]}
           }
    
    # print(dic)
    # print(dic[1004]["韦小宝"][0]["教主夫人"][0])
    # print(dic[1005]["常鑫"][-1])
    # print(dic[1002]["汪峰"]["前妻2"][-1])
    # print(dic[1004]["韦小宝"][4]["独臂神尼"]["韦小宝师父"]["兰陵王"])
    # print(dic[1004]["韦小宝"][4]["独臂神尼"]["花木兰"][2]["爸爸"][0])
    
  • 相关阅读:
    c++和java(c#)之间的pk
    C语言中.h和.c文件解析
    怎样花两年时间去面试一个人
    进程调度算法模拟
    1079 中国剩余定理
    Educational Codeforces Round 50 (ABCD)
    解决Android Studio默认AppTheme 没有lable标签,不显示等问题
    Codeforces Round #508(ABCD)
    牛客OI赛制测试赛2
    deepin关机卡在图标界面 mysql Community...10min
  • 原文地址:https://www.cnblogs.com/yangduoduo/p/11167712.html
Copyright © 2020-2023  润新知