zoukankan      html  css  js  c++  java
  • day05

     dict字典
            {}表示. 每次保存两个数据 key:value, 键值对
            {"大阳哥":"赵阳", "sylar":"邱彦涛","强强":"张强强"}
            value: 任意的数据类型
            key: 必须是可哈希的(不可变)

            字典不能切片

    二  字典的 增删改查

      1. 增: 1.添加内容可以直接使用key来进行添加

    dic = {}
     dic['jay'] = "周杰伦"  # {'jay': '周杰伦'}
    dic["jay"] = "王力宏"  # {'jay': '王力宏'}
        #如果key存在.执行的是修改操作. 如果key不存在. 执行的是新增
     print(dic)
    

      

    2. setdefault()

     dic.setdefault("王二小") # 一个参数放的是key
     dic.setdefault("王二小", "弹溜溜") # 如果key不存在. 新增
     dic.setdefault("王二小", "上片机") # 如果存在key. 不执行任何操作
     print(dic)
    
     dic = {}
    dic.setdefault("李嘉诚")
     dic.setdefault("李嘉诚", "房地产")
     print(dic)
    

     2  删  删: pop(), del, clear, popitems()

     dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
     ret = dic.pop("朱棣") # 返回value
     print(ret)
     print(dic)
     del dic['朱允炆'] # 缺点:没有返回
     print(dic)
     dic.clear() # 清空
     print(dic)
    ret = dic.popitem() # 随机删.
    print(ret)
     print(ret[0], ret[1])
    print(dic)
    

      (2)  解构

    a, b = (1, 5)
    # print(a)
    # print(b)
    
    # k,v = dic.popitem() # dic.popitem()的结果是一个元组. 元组可以直接解构成两个值
    # print(k)
    # print(v)
    

      3改  改: 用key改, 也可以进行update

    # dic = {'朱高炽':None, "朱元璋":"和尚", "诸葛亮":'不是个和尚'}
    # dic["朱高炽"] = "很胖的一个独眼龙"
    # print(dic)
    #{'age': 58, '朱祁镇': 18, '朱棣': 55, '年轻': 18, '张无忌': '赵敏', 'name': '朱由检'}
    # dic1 = {"name":'朱高炽','age':58, '朱祁镇':18}
    # dic2 = {"name":'朱由检','年轻':18, '朱棣':55, '张无忌':'赵敏'}
    # # update: 把dic2更新到dic1, dic1中如果存在了dic2中的key.会修改(覆盖), 如果不存在. 新增这个key:value
    # dic1.update(dic2)
    # print(dic1)
    # print(dic2)
    

      4查用key查找

    lst = [1, 2, 5, 8]
    # print(lst[5])   # list index out of range
    
    # dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
    # print(dic['朱见深'])   # KeyError: '朱见深' key不存在
    # print(dic.get("朱祁镇"))   # dic.get("朱祁镇") == dic['朱祁镇']
    # get(key, default)
    # print(dic.get("朱见深", "查无此人"))   # 返回none. 不存在key
    
    # dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
    # print(dic.keys())   #  dict_keys(['朱允炆', '朱祁镇', '朱棣']) 把这个当成list来看就可以了
    # for el in dic.keys():
    #     print(el) # 拿到了key.就可以拿value
    #     print(dic.get(el)) # value
    
    
    # dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
    # print(dic.values())
    # for el in dic.values():
    #     print(el)
    
    # dic = {'朱祁镇': 18, '朱棣': 55, '朱允炆':50}
    # print(dic.items())
    # # 从dic中获取到list列表. 列表中每一项都是一个元组(key,value) 通过解构可以直接把key和value获取到
    # for k,v in dic.items():
    #     print(k)
    #     print(v)
    
    # wangfeng = {
    #     'name':'汪峰',
    #     'age':46,
    #     'wife':{
    #         'name':'章子怡',
    #         'age':43
    #     },
    #     'children':[
    #         {'name':'小叮当','age':10},
    #         {'name':'大叮当','age':16}
    #     ]
    # }
    #  汪峰的第二个儿子的年龄
    # print(wangfeng.get("children")[1].get("age"))
    # print(wangfeng.get("wife").get("name"))
    # print(wangfeng.get("name"))
    

      3 字典嵌套 dict

    dic = {
    'name':['alex',2,3,5],
    'job':'teacher',
    'oldboy':{'alex':['python1','python2',100]}
    }
    # 1,将name对应的列表追加一个元素’wusir’。
    dic['name'].append("wusir")
    print(dic)
    # 2,将name对应的列表中的alex首字母大写。
    dic['name'][0] = dic['name'][0].capitalize()
    print(dic)
    # 3,oldboy对应的字典加一个键值对’老男孩’,’linux’。
    dic['oldboy']['老男孩'] = 'linux'
    print(dic)
    # 4,将oldboy对应的字典中的alex对应的列表中的python2删除。
    dic["oldboy"]['alex'].remove('python2')
    print(dic)
    

      

  • 相关阅读:
    洛谷 P2713:「罗马游戏」
    洛谷 P4014:「分配问题」
    「洛谷P1433」吃奶酪
    信号的频谱分析,加噪降噪处理
    javascript学习笔记
    IDA学习笔记
    inline内联函数
    api hook学习笔记
    java反射学习笔记
    android基于MBR的bootkit病毒学习笔记
  • 原文地址:https://www.cnblogs.com/daien522556/p/9139543.html
Copyright © 2011-2022 走看看