• 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)        #结果:没有这个键
    

      

      

      

  • 相关阅读:
    Python一直在找动态Cookie,恩!
    python和Ajax在一起了?真的???
    Flask网页session记住用户登录状态
    Rxjs Observable.pipe 传入多个 operators 的执行逻辑分析
    RxJs map operator 工作原理分析
    RxJs fromEvent 工作原理分析
    SAP Spartacus Reference App Structure
    SAP Spartacus RouterModule.forRoot() called twice 的错误消息
    SAP UI5 XML 视图里 label 和 text 控件文本对齐问题
    Angular 使用 Injector API 人工获取依赖注入的实例
  • 原文地址:https://www.cnblogs.com/eternity-twinkle/p/10476608.html
Copyright © 2020-2023  润新知