• day05


    1. 字典(dict)的简单介绍

    字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成. 在dict中key是唯⼀的. 
    语法 :
        {key1: value1, key2: value2....}
    # 用大括号{}括起来. 内部使用key:value的形式来保存数据
        {'jay':'周杰伦','jj':'林俊杰'}
    注意: key必须是不可变(可哈希)的. value没有要求.可以保存任意类型的数据
    
    已知的可哈希(不可变)的数据类型: int, str, tuple, bool
    不可哈希(可变)的数据类型: list, dict, set

    2. 字典(dict)的增删改查

    *增加
    dic = {'昆凌':"周杰伦的老婆"}
    
    # 新增
    dic["国际章"] = "汪峰的老婆"    
    print(dic)  # {'昆凌': '周杰伦的老婆', '国际章': '汪峰的老婆'}
    
    # 若果key重复了, 会替换掉原来的数据
    dic["国际章"] = "雄壮的老外"    
    print(dic)  # {'昆凌': '周杰伦的老婆', '国际章': '雄壮的老外'}
    
    # 新增
    dic.setdefault("马蓉","王宝强的前任老婆")
    print(dic)  # {'昆凌': '周杰伦的老婆', '马蓉': '王宝强的前任老婆'}
    
    # 如果字典中已经包含了这个key,不在继续保存.
    dic.setdefault("马蓉","宋哲的现任老婆????") 
    print(dic)  # {'昆凌': '周杰伦的老婆', '马蓉': '王宝强的前任老婆'}
    
    #只有key,没有value.  那么value是空值none
    dic.setdefault("谢娜",)   
    print(dic)  # {'昆凌': '周杰伦的老婆', '马蓉': '王宝强的前任老婆', '谢娜': None}
    * 删除
    dic = {"牌牌":"你去哪里了","晓雪":"你快回来","雪雪":"又走了","老李":"你怎么来了?"}
    
    # 删除
    ret = dic.pop("晓雪")  # 返回被删除这个元素的value值     
    print(dic)  # {"牌牌":"你去哪里了","雪雪":"又走了","老李":"你怎么来了?"}
    print(ret)  # 你快回来
    
    # 随机删
    ret = dic.popitem()   # 返回被随机删除这个元素的value值
    print(dic)
    print(ret)
    
    # del删除
    del dic["雪雪"]     
    print(dic)  # {'牌牌': '你去哪里了', '晓雪': '你快回来', '老李': '你怎么来了?'}
    
    # 清空字典所有内容
    dic.clear() 
    print(dic)  # {}
    *修改
    dic = {"id":1,"name":"李嘉诚",'money':1000000}
    # 李嘉诚赔 了500
    dic["money"] = dic["money"] - 500
    print(dic)  # {'id': 1, 'name': '李嘉诚', 'money': 999500}
    dic1 = {'李晨':'范冰冰',"邓超":"孙俪","王祖蓝":"李亚男"} dic2 = {'李晨':'张曦予',"郑凯":"baby","王宝强":"马蓉"} dic1.update(dic2) # 把dic2中的内容更新到dic1中. 如果存在了key,替换. 如果不存在,添加. print(dic1) # {'李晨': '张曦予', '邓超': '孙俪', '王祖蓝': '李亚男', '郑凯': 'baby', '王宝强': '马蓉'} print(dic2) # {'李晨': '张曦予', '郑凯': 'baby', '王宝强': '马蓉'}
    *查询
    dic = {"及时雨":"宋江","小李广":"花荣","黑旋风":"李逵","易大师":"剑圣"}
    dic["大宝剑"] = "盖伦"   # 新增(dic里面没有)
    dic["及时雨"] = "天老爷"  # 修改(覆盖)
    
    # 查询. 如果key存在,得到他的value值. 如果key不在,报错
    print(dic["及时雨"])  # 天老爷
    print(dic["易大师是个脑残"])   # KeyError: '易大师是个脑残'
    
    # get()
    # 可以通过key来获取value的值. 那么如果key不存在. 返回None
    # 野人可以在后面给出一个默认值. 当key不存在是返回默认值
    dic = {"及时雨":"宋江","小李广":"花荣","黑旋风":"李逵","易大师":"剑圣"}
    print(dic.get("易大师","余小c"))   # 剑圣
    print(dic.get("无用")) # None
    print(dic.get("无用","不存在")) # 不存在

    dic = {"及时雨":"宋江","易大师":"剑圣"}
    dic.setdefault("诺手","诺克萨斯")   # 可以帮我们添加(如果dic中有了,不再覆盖添加)
    print(dic)  # {'及时雨': '宋江', '易大师': '剑圣', '诺手': '诺克萨斯'}
    ret = dic.setdefault("及时雨123","hello")
    print(ret)  # hello
    print(dic)  # {'及时雨': '宋江', '易大师': '剑圣', '诺手': '诺克萨斯', '及时雨123': 'hello'}
    
    # 1. 首先判断原来的字典有没有这个key. 如果没有,执行新增.
    # 2. 用这个key去字典中查询, 返回查询到的结果
    dic = {"及时雨":"宋江","易大师":"剑圣"}
    ret = dic.setdefault("潘金莲","西门庆")   # 如果没有,就新增. 再通过key去查询value.
    print(ret)  # 西门庆
    
    ret = dic.setdefault("及时雨","西门庆")   # 如果有,就不用新增. 直接通过key去查询.
    print(dic)  # {'及时雨': '宋江', '易大师': '剑圣', '潘金莲': '西门庆'}
    print(ret)  # 宋江

    3. 字典的其他相关操作

    dic = {"及时雨":"宋江","易大师":"剑圣","维恩":"暗影猎手"}
    
    # 拿到所有的key. 返回key的集合. 像是列表, 但不是列表
    print(dic.keys())  # dict_keys(['及时雨', '易大师', '维恩'])
    for key in dic.keys():  # 可以进行迭代循环
        print(key)
    
    # 拿到所有的value. 返回key的集合. 像是列表, 但不是列表
    print(dic.values())  # dict_values(['宋江', '剑圣', '暗影猎手'])
    for value in dic.values():
        print(value)
    
    # 拿到所有的赋值对
    print(dic.items())  # dict_items([('及时雨', '宋江'), ('易大师', '剑圣'), ('维恩', '暗影猎手')])
    # 遍历dict
    for k, v in dic.items():  # 下面的两步利用解构最终推出这个
        print(k, v)
    
    for item in dic.items():
        print(item[0])  # key
        print(item[1])  # value
    
    for item in dic.items():
        k, v = item # (key, value)
        print(k)
        print(v)
    
    # 解构. 解包(元组, 列表都可以用)
    a, b = (1, 2)
    print(a)  # 1
    print(b)  # 2
    
    a, b, c, = ("马化腾","马云","马良")
    print(a)  # 马化腾
    print(b)  # 马云
    print(c)  # 马良
    
    a, b = [1,2]
    print(a,b)  # 1 2
    
    k, v = "st"
    print(k, v)  # s t
    
    # len()测量字典的长度
    s = {"ni":"","wo":"","ta":""}
    print(len(s))  # 3
    # 直接循环字典,拿到的是key
    dic = {1:'a',2:'b',3:'c'}
    for a in dic:   
        print(a)
        print(dic[a])

    4. 字典的嵌套

    dic = {
        "name":"汪峰",
        "age":58,
        "wife":{
            "name":"国际章",
            "salary": 180000,
            "age": 37
            },
        "children":[
            {"name":"老大","age": 18},
            {"name":"老二","age": 118}
        ]
    }
    print(dic["children"][1]["age"])  # 118
    print(dic["wife"]["salary"])  # 180000

      

  • 相关阅读:
    Javascript 之 构造函数
    MySQL无法创建外键、查询外键的属性
    企业该如何进行高效IT运维管理
    提高工作效率:15个有用的项目管理工具
    JavaScript AJAX stream 流式显示
    “后PC”时代来临
    Oracle 11gR2 Database和Active Data Guard迁移案例
    亲历腾讯WEB前端开发三轮面试经历及面试题
    基于jquery的页面代码的优化
    HTML5简略介绍
  • 原文地址:https://www.cnblogs.com/kangqi452/p/11280999.html
Copyright © 2020-2023  润新知