前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python字典使用(八)

Python字典使用(八)

作者头像
py3study
发布2020-01-10 18:17:16
7390
发布2020-01-10 18:17:16
举报
文章被收录于专栏:python3python3

字典描述:

字典是另一种可变容器模型,且可以存储任意类型对象。

字典的每个键值(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'}

{}

注:

  1. 当查询的键不存在时,会默认添加。
  2. 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

本文参与?腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2019-08-26 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体分享计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
容器服务
腾讯云容器服务(Tencent Kubernetes Engine, TKE)基于原生 kubernetes 提供以容器为核心的、高度可扩展的高性能容器管理服务,覆盖 Serverless、边缘计算、分布式云等多种业务部署场景,业内首创单个集群兼容多种计算节点的容器资源管理模式。同时产品作为云原生 Finops 领先布道者,主导开源项目Crane,全面助力客户实现资源优化、成本控制。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com