设为首页 收藏本站
查看: 1136|回复: 0

[经验分享] Python字典使用(八)

[复制链接]

尚未签到

发表于 2018-8-4 09:05:06 | 显示全部楼层 |阅读模式
  字典描述:
  字典是另一种可变容器模型,且可以存储任意类型对象。
  字典的每个键值(key=>value)对用冒号分隔,每对之间用逗号分割,整个字典包括花括号在内,如下所示:
  d={key1:value1,key2:value2}
  键必须是唯一的,但值不必。
  值可以取任何数据类型,但是键是必须不可变的,如字符串、元组或数字。
  如:
  d = {'Alex':'aaa','Wang':'bbb'}
  d1={'Alex':111,'Wang':222}
  访问字典的值:
  d = {'Alex':'aaa','Wang':'bbb'}
  #d1={'Alex':111,'Wang':222}
  print(d.keys())  #读取字典所有键
  print(d.values()) #读取字典所有值
  print('d["Alex"]: ',d['Alex'])  #读取某一个键的值,
  # (习惯:引号使用,当需要使用叠加的引号时,注意不要都使用同一种引号。比如全部单引号或者全部双引号,那样会报错。) 比如:print('d[Alex]: ',d['Alex'])
  print("d['Alex1']: ",d['Alex1']) #读取不到键会报错,信息如下KeyError: 'Alex1'
  运行结果:
  print("d['Alex1']: ",d['Alex1'])
  KeyError: 'Alex1'
  dict_keys(['Alex', 'Wang'])
  dict_values(['aaa', 'bbb'])
  d['Alex']:  aaa
  增加&查找&删除&修改:
  d = {
  '1':'aaa',
  '2':'bbb',
  '3':'ccc',
  "4":'ddd',
  }
  #d1={'Alex':111,'Wang':222}
  d['5']='fff' #当查询不存在这个键时,就会添加。
  print(d)
  d['1']='111' #当查询存在这个键时,如果值不对就会修改该值。
  print(d)
  d2=d.get('5') #用get方法,找到不存在只会返回None,不会报错
  print(d2)
  #del d['1']#python内置的通用删除方法
  #d.pop('2')#字典里的pop必须指定删除对象
  d.popitem()
  print(d)
  d.clear() #清空字典
  print(d)
  运行结果:
  {'1': 'aaa', '2': 'bbb', '3': 'ccc', '4': 'ddd', '5': 'fff'}
  {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd', '5': 'fff'}
  {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd'}
  {}
  注:

  •   当查询的键不存在时,会默认添加。
  •   get()查询某个键查询不到时,只会返回None,不会报错。
      多级字典的嵌套及操作:
  info ={
  'NJ':{
  '建邺区':['A','B','C'],
  '江宁区':['AA','BB','CC'],
  },
  'SZ':{
  '福田区':['1','2','3'],
  '高新区':['11','22','33'],
  }
  }
  print(info)
  info['NJ']['建邺区'][2]=55   #可以修改键里面的值
  print(info)
  info.setdefault('JD',{'SSS':[1,2]}) #查不到的可以添加 key-value
  print(info)
  info.setdefault('SZ',{'SSS':[1,2]}) #无法修改 键对应的值
  print(info)
  运行结果:
  {'NJ': {'建邺区': ['A', 'B', 'C'], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}}
  {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}}
  {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}, 'JD': {'SSS': [1, 2]}}
  {'NJ': {'建邺区': ['A', 'B', 55], '江宁区': ['AA', 'BB', 'CC']}, 'SZ': {'福田区': ['1', '2', '3'], '高新区': ['11', '22', '33']}, 'JD': {'SSS': [1, 2]}}
  其他操作:
  d = {
  '1':'aaa',
  '2':'bbb',
  '3':'ccc',
  "4":'ddd',
  }
  a ={
  '1':'111',
  'd':123,
  888:999,
  }
  d.update(a)  #合并列表,并且以被合并的数据为最新的数据更新字典
  print(d)
  print(d.items()) #转换为列表
  运行结果:
  {'1': '111', '2': 'bbb', '3': 'ccc', '4': 'ddd', 'd': 123, 888: 999}
  dict_items([('1', '111'), ('2', 'bbb'), ('3', 'ccc'), ('4', 'ddd'), ('d', 123), (888, 999)])
  循环读取字典:
  for key in d:
  print(key,d[key])
  for item,key in d.items(): #会先把dictionary转成list,数据里大时莫用
  print(item,key)
  运行结果:
  1 aaa
  2 bbb
  3 ccc
  4 ddd
  1 aaa
  2 bbb
  3 ccc
  4 ddd

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-546249-1-1.html 上篇帖子: Python实现广播数据 下篇帖子: Python 中的tab补全
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表