zoukankan      html  css  js  c++  java
  • 005_字典

    1,字典
    • 字典特性  
    • 字典没有索引
    • 字典一个键对应一个键值
    • 注意:规范书写

    2,#字典的创建

    dic = {}
    print(dic)      #结果:{}
    dic = {'name': 'py', 'age': 20, 'sex': '男'}
    print(dic)      #结果:{'name': 'py', 'age': 20, 'sex': '男'}
    
    3, setdefault(键,值)字典元素的增加
    • 如果这个键不存在字典中,则将这个键值对添加进字典,并返回这个新键的值
    • 如果这个键存在,不做任何改变,并返回这个键的值,
    dic = {'name': 'py', 'age': 20, 'sex': '男'}
    dic.setdefault('love')      #添加键值对'love':'None'
    v = dic.setdefault('job','set') #添加键值对'job':'set'
    print(dic)
    print(v)                    #返回新键的值
    print(dic.setdefault('age',30))     #已存在的键不做任何更改并返回键值
    
    #结果:{'name': 'py', 'age': 20, 'sex': '男', 'love': None, 'job': 'set'}
    #      set
    #      20
    4,字典增改
    dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
    dic['love'] = 'set'             #没有键值对,添加
    dic['age'] = 30                 #如果有键,则值覆盖
    print(dic)          #结果:{'name': 'py', 'age': 30, 'sex': '男', 'num': [1, 2, 3], 'love': 'set'}
    #注意:
    dic['num'][1] = 5
    print(dic)          #结果:{'name': 'py', 'age': 30, 'sex': '男', 'num': [1, 5, 3], 'love': 'set'}
    5,字典删除
    • pop() #有返回值,按键去删除
    dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
    print(dic.pop('age'))       #删除存在的键age    #结果:20
    #删除不存在的键时一定要设定异常处理的返回值(这里设的‘没有此键’),不然会报错。
    print(dic.pop('love','没有此键'))       #结果:没有此键
    print(dic) 
    6,popitem() #默认删除最后一个
    • 以元组的形式返回删除的键和值
    # dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
    # print(dic.popitem())        #结果:('num', [1, 2, 3])
    # print(dic)                  #结果:{'name': 'py', 'age': 20, 'sex': '男'}
    7,del()  #删除的元素不存在会报错
    dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
    del dic['num']
    print(dic)          #结果:{'name': 'py', 'age': 20, 'sex': '男'}
    
    8,清空或删除字典
    dic = {'name': 'py', 'age': 20, 'sex': '男', 'num': [1, 2, 3]}
    dic.clear()     #清空字典
    print(dic)      #结果:{}
    del dic         #删除字典
    print(dic)      #结果:报错
    9,updata()  将一个字典更新到另一个字典
    dic1 = {'name': 'py', 'age': 20}
    dic2 = {'age': 18, 'love': 'job'}
    dic1.update(dic2)       #将dic2的内容更新到dic1中
    print(dic1)     #结果:{'name': 'py', 'age': 18, 'love': 'job'}
    print(dic2)     #结果:{'age': 18, 'love': 'job'}
    
    10,查
    #查所有键
    dic = {'name': 'py', 'age': 20}
    print(dic.keys(),type(dic.keys()))
    #查所有键值
    print(dic.values())
    #查所有元素
    print(dic.items())
    #结果     注意:查到的结果的类型还是字典
    # dict_keys(['name', 'age']) <class 'dict_keys'>
    # dict_values(['py', 20])
    # dict_items([('name', 'py'), ('age', 20)])
    

     

    # dic = {'name': 'py', 'age': 20}
    # for k, v in dic.items():        #用了分别赋值
    #     print(k, v)
    # # 结果:
    # # name py
    # # age 20
    
    
    # dic = {'name': 'py', 'age': 20}
    # for i in dic.items():
    #     print(i)
    # #结果     以元组的形式返回键值
    # # ('name', 'py')
    # # ('age', 20)
    11,得到一个键值
      11.1,直接获取
    dic = {'name': 'py', 'age': 20}
    v = dic['name']
    print(v)        #结果:py
    
    v = dic[love]     #获取不存在的键报错
      11.2,通过get()获取
    v = dic.get('name')
    print(v)        #结果:py
    v = dic.get('love', '没有这个键')   #要设置异常处理,不然对于不存在的键会报错
    print(v)        #结果:没有这个键
    

      

      

      

  • 相关阅读:
    golang 数据结构 优先队列(堆)
    leetcode刷题笔记5210题 球会落何处
    leetcode刷题笔记5638题 吃苹果的最大数目
    leetcode刷题笔记5637题 判断字符串的两半是否相似
    剑指 Offer 28. 对称的二叉树
    剑指 Offer 27. 二叉树的镜像
    剑指 Offer 26. 树的子结构
    剑指 Offer 25. 合并两个排序的链表
    剑指 Offer 24. 反转链表
    剑指 Offer 22. 链表中倒数第k个节点
  • 原文地址:https://www.cnblogs.com/eternity-twinkle/p/10476608.html
Copyright © 2011-2022 走看看