• day3-2


    字典的使用

    字典是无序的,通过键值索引

    字典的简单操作

     1 dicto = {
     2         'name1':'101q',
     3         'name2':'102q',
     4         'name3':'103q',
     5         'name4':'104q',
     6         'name5':'105q'
     7         }
     8 
     9 print(dicto)
    10 print(dicto['name3']) # 查找    103q
    11 # 如果不确定查找的一定存在,最好使用get方法
    12 print(dicto.get("name",'sorry'))   # 如果不存在返回None,可以设定返回值,返回sorry
    13 
    14 dicto["name2"] = '10022q'
    15 print(dicto)         # 修改  {'name1': '101q', 'name2': '10022q', 'name3': '103q', 'name4': '104q', 'name5': '105q'}
    16 
    17 #  删除
    18 # del python内置删除方法,del dicto["name1"]
    19 
    20 dicto.pop("name1")   # 指定删除name1,popitem  随机删除
    21 
    22 
    23 # 判断字典是否含有
    24 print('name2' in dicto)
    View Code

    多级字典操作

    1 dicto = {
    2         'name1':{'user1':'password1'},
    3         'name2':{'user2':'password2'},
    4         'name3':{'user3':'password3'},
    5         'name4':{'user4':'password4'},
    6         'name5':{'user5':'password5'}
    7         }
    8 
    9 print(dicto['name1']['user1'])   #password1
    View Code

    key值最好不要使用中文

     对key 和value 的操作

     1 dicto = {
     2         'name1':'101q',
     3         'name2':'102q',
     4         'name3':'103q',
     5         'name4':'104q',
     6         'name5':'105q'
     7         }
     8 
     9 print(dicto)
    10 print(dicto.values())    # 打印所有的值   dict_values(['101q', '102q', '103q', '104q', '105q'])
    11 
    12 # dcito.key 打印键值
    13 dicto.setdefault("name","qq")
    14 print(dicto)#  setdefault  查找是否含有name 的key 如果有则字典不改变,如果没有则添加
    View Code

    字典的合并

    使用update  ,有相同key的则更新,没有则添加

     1 dicto = {
     2         'name1':'101q',
     3         'name2':'102q',
     4         'name3':'103q',
     5         'name4':'104q',
     6         'name5':'105q'
     7         }
     8 
     9 d = {
    10      'name1':'小马哥',
    11      'name':'大马',
    12      1:2
    13      }
    14 
    15 c = {
    16      'ab':'cd',
    17      'dd':'cc',
    18      6:5
    19      }
    20 
    21 print(dicto)
    22 
    23 dicto.update(d)   # 返回值是None
    24 print(dicto)     # {'name1': '小马哥', 'name2': '102q', 'name3': '103q', 'name4': '104q', 'name5': '105q', 'name': '大马', 1: 2}
    25 
    26 #dicto.update(d,c)    # 出错 TypeError: update expected at most 1 arguments, got 2  
    27 #print(dicto)       # 只能有一个参数
    28 
    29 
    30 print(dicto.items())   # 把字典转换成列表
    31 
    32 for i in dicto.items():
    33     print(i)
    34     
    35 '''  ('name1', '小马哥')
    36 ('name2', '102q')
    37 ('name3', '103q')
    38 ('name4', '104q')
    39 ('name5', '105q')
    40 ('name', '大马')
    41 (1, 2)
    42 '''
    View Code

    fromkeys  通过一个列表生成一个dict

     1 a = dict.fromkeys([1,2,3],'sorry')
     2 print (a)    #  {1: 'sorry', 2: 'sorry', 3: 'sorry'}
     3 
     4 b = dict.fromkeys([4,5,6,],[1,{'qq':''},9])
     5 print (b)   #{4: [1, {'qq': '马'}, 9], 5: [1, {'qq': '马'}, 9], 6: [1, {'qq': '马'}, 9]}
     6   # 全部改变
     7 b[5][1]['qq'] = 'wx'
     8 print(b)   #{4: [1, {'qq': 'wx'}, 9], 5: [1, {'qq': 'wx'}, 9], 6: [1, {'qq': 'wx'}, 9]}
     9 
    10 # 类似于浅copy
    View Code

    循环字典:(两种方法)

    for i in dict:

      print(i,dict[i])

    for k,v in dict.items():

      print(k,v)   # 缺陷,先转换为列表,如果数据量大,耗费太多时间

  • 相关阅读:
    Spring MVC源码——Root WebApplicationContext
    ThreadPoolExecutor 源码阅读
    Spark RDD
    HashMap 源码阅读
    不定期更新的IDEA功能整理
    Jvm内存区域和GC
    装饰模式和Java IO
    spring websocket集群问题的简单记录
    Kotlin in Action 笔记
    WebSphere部署Spring Boot
  • 原文地址:https://www.cnblogs.com/yfjly/p/9665767.html
Copyright © 2020-2023  润新知