• 小学生都能学会的python(字典{ })


    小学生都能学会的python(字典{ })

    1. 什么是字典
    dict. 以{}表示. 每一项用逗号隔开, 内部元素用key:value的形式来保存数据
    {"jj":"林俊杰", "jay":"周杰伦"}

    查询的效率非常高, 通过key来查找元素
    内部使用key来计算一个内存地址(暂时),hash算法. key必须是不可变的数据类型(key 必须是可哈希的数据类型)
    可哈希就是不可变

    2. 字典的增删改查
    1. 字典的新增:
    dict[新key] = value
    dict.setdefault()

    # dic = {}
    # # 徐峥:人在囧途
    # dic['徐峥'] = "人在囧途" # 直接用key往里面存数据即可
    # dic['黄渤'] = "疯狂的石头"
    # dic["王宝强"] = "天下无贼"
    # dic["王宝强"] = "士兵突击" # 如果key已经存在。 那么会替换掉原来的value, 修改
    #
    # dic.setdefault("黄秋生")
    # dic.setdefault("黄秋生", "无间道")    # 如果存在了key, 不会执行新增
    #
    # print(dic)
    

      


    2. 删除
    pop(key)
    popitem()
    clear()
    del dict[key]

    dic = {"黄日华": "天龙八部", "吕颂贤": "笑傲江湖", "苏有朋": "倚天屠龙记", "六小龄童": "西游记"}
    # dic.pop("吕颂贤") # 指定key删除
    # dic.popitem()  # 随机删除
    # del dic["黄日华"]  # 删除
    # dic.clear() # 清空字典
    
    print(dic)
    

      


    3. 修改
    dic[key] = 新值
    update()
    4. 查询
    1. 用key直接查询 dict[key]
    2. get(key, 如果key不存在返回的数据)
    3. setdefault() 1. 执行新增流程. 2. 查询结果
    5. 操作
    1. keys() 获取所有键 这个返回的不是列表, 很像列表
    2. values()获取所有的值
    3. items() 获取所有的键值对. 返回的是元组
    解构, 直接把元组或者列表中的数据拿出来.
    a, b, c = (a1, b1, c1) 必须一一对应

    dic = {"刘能": "王小利", "赵四": "刘晓光", "王木生": "范伟", "谢大脚": "于月仙", "李大国": "小鬼"}
    # dic['王木生'] = "刘伟"
    dic2 = {"刘能": "大阳哥", "赵四": "github", "王木生": "汪峰", "谢大脚": "冯提莫", "王大拿": "金老板"}
    dic.update(dic2)
    print(dic)
    
    # 查询
    dic = {'刘能': '大阳哥', '赵四': 'github', '王木生': '汪峰', '谢大脚': '冯提莫', '李大国': '小鬼', '王大拿': '金老板'}
    # 1. 最直观。 直接用key
    print(dic['周杰伦'])  # 当这个key不存在的时候会报错
    # 2. get方法
    print(dic.get("谢大脚", "周杰伦不在这里"))  # 没有key. 返回None
    # 3. setdefault()  1. 新增(先看有没有key, 如果有就过, 如果没有,执行新增) 2.根据key把值返回
    dic = {}
    dic["盖伦"] = "德玛西亚之力"
    value = dic.setdefault("菲奥娜", "无双剑姬")  # 新增
    value2 = dic.setdefault("盖伦", "刘伟")  # 由于已经存在了key。 所以新增不执行。 直接查询结果
    value3 = dic.setdefault("薇恩", "坑")
    
    print(value3)
    print(dic)
    

      

    6. 遍历字典
    for key in dict:
    dict[key]

    for k, v in dict.items():
    k , v

    dic = {"汪峰": "大陆音乐半壁江山", "周杰伦": "亚洲音乐天王", "罗志祥": "亚洲舞王"}
    
    # 对字典的遍历
    # print(dic.keys())   # dict_keys(['汪峰', '周杰伦', '罗志祥']) 像列表但不是列表
    # for key in dic.keys():
    #     print(key)  # 拿到key
    #     print(dic[key]) # 拿到value
    
    # print(dic.values())
    # for value in dic.values():
    #     print(value)
    
    
    # 也可以遍历字典
    # [('汪峰', '大陆音乐半壁江山'), ('周杰伦', '亚洲音乐天王'), ('罗志祥', '亚洲舞王')]
    # print(dic.items())  # 拿到的是key和value
    for k, v in dic.items(): # 当需要遍历字典. 在操作中涉及到key和value的时候.
        print(k) # 元组
        print(v)
    
    
    # 字典本身是一个可迭代对象,可以直接进行for循环
    for el in dic:  # 直接拿到key
        print(el)
        print(dic[el])
    
    # 前面的变量的个数和后面解包的个数一致
    # a, b = (10, 20) # 解构, 解包
    # print(a)
    # print(b)
    

      

    7. 字典嵌套.

    wf = {
        "name": "汪峰",
        "age": 48,
        "成名曲": "春天里",
        "wife": {
            "name": "章子怡",
            "age": 39,
            "工作": "演员"
        },
        "children":[
            {"num": "001", "name": "汪一", "hobby": "唱歌"},
            {"num": "002", "name": "汪二", "hobby": "演戏"} # wf['children'][1]['name']
        ]
    }
    
    # wf['wife']['age'] = wf['wife']['age'] + 10
    # print(wf)
    

      

  • 相关阅读:
    vuejs 踩坑及经验总结
    Factory Method
    【Java】macOS下编译JDK8
    康威定律(Conway's law)
    first-child和first-of-type
    JavaScript 核心学习——继承
    All Tips
    21分钟教会你分析MaxCompute账单
    CTO职场解惑指南系列(一)
    威胁预警|首现新型RDPMiner挖矿蠕虫 受害主机易被添加恶意账户
  • 原文地址:https://www.cnblogs.com/konghui/p/9670111.html
Copyright © 2020-2023  润新知