Python09 字典
字典包含了key和value
其中key是不可变的,value隶属于key是可以变的
字典是无序的,字典没有下标,通过key来寻找value
test = {'A':1,'B':'zhangsan','C':'lisi'}
print (test)
- 查找
test = {'A':1,'B':'zhangsan','C':'lisi'}print (test['B'])
可以通过key、来查找值
print(test.get('C'))
print(test.get('F'))
通过get来查找,有就打印value,没有就打印None
使用get是一个比较安全的查找方式,如果查不到会返回None值,这样执行代码不会报错
print ('C' in test) #这个类似python2.X中的test.has_key('C'),python3中已经没有has_key了
print (test.keys())
print (test.values())
查找所有key和查找所有value
- 修改
test = {'A':1,'B':'zhangsan','C':'lisi'}test ['C']=33
test ['D']=44print(test)
根据key修改value ,存在则修改,不存在则新增
test1 = {'A':{'AA':111},'B':222}
test2 = {'B':123,'C':333}test1.update(test2)
print (test1)
将两个字典合并,已存在的key会被覆盖,没有则新增
test1 = {'A':{'AA':111},'B':222}
print (test1.items())
将字典转成列表
- 删除
test = {'A':1,'B':'zhangsan','C':'lisi'}del test['A']print (test)
print(test.pop('B')) #pop删除并返回删除的内容
使用pop删除后,会返回删除的值
test = {'A':1,'B':'zhangsan','C':'lisi','D':4,'E':5}
test.popitem()
print (test)
使用popitem会随机删除一个(好像删除的是最后一个)
- 多级字典
test = {'A':{'AA':[123,456]}} #三级嵌套,本实例是两个字典,一个列表print (test)
test['A']['AA'][13]=789
print (test)
setdefault
test = {'A':1,'B':2,'C':3} test.setdefault('C',{'CCC':333}) test.setdefault('D',{'DDD':444}) print (test)
setdefault到字典中获取key的值并返回,如果没有则新增- fromekeys
a = dict.fromkeys(['A','B','C']) print(a)
创建一个新的字典,然后批量创建字典的key,默认value为None,可以修改None,通过批量建立key,这样减少了一半建立字典的工作量。
test = {'A':1,'B':2,'C':3}
a = test.fromkeys(['AA','BB','CC'])
print (a)
将现有的字典给修改了
test = {'A':1,'B':2,'C':3}
a = test.fromkeys(['AA','BB','CC'],'123')
print (a)
可以批量赋予key的value
print (test)
其实可以看到test并没有改变,也就是说fromkeys不会改变现有的字典
fromkeys只会初始化一个新的字典
a = dict.fromkeys(['A','B','C'],[111,{'name':'aubrey'},222])
print(a)
批量为字典key A、B、C赋值[111,{'name':'aubrey'},222]
a['C'][1]['name']='Peter' #修改A字典C这个key的value
print(a)
但实际看到的是,所有key的value都被修改了
这是因为当使用fromkeys,设置多级字典时,value使用的是同一个内存地址,所以当修改一个的时候,其他也就都被修改了。
- 循环
test = {'A':1,'B':2,'C':3}
for i in test:print (i,test[i]) 、#打印的第一个i是循环只是将所有key赋值给i,所以在打印第一个i的时候,仅仅打印的是这个i的赋值,并不是字典;但是打印的第二个test[i]就是打印字典了,和你直接使用print test['A']是一样的,只不过这里将A、B、C这三个key对饮的值都打印了一遍
循环打印字典
for k,v in test.items():
#.items将字典变成列表,也就是['A',1],k对应的这个A,v对应这个1,然后就这样赋值循环;这种方式没有上面的好,因为需要不断的将字变成程列表,再去循环
print(k,v)
转载于:https://blog.51cto.com/daimalaobing/2046481
Python09 字典相关推荐
- 一木.溪桥学Python-09:函数的返回值、函数的作用域、作用域的优先级、递归函数、内置文件中常用方法、匿名函数lambda、高阶函数
一木.溪桥 在Logic Education跟Amy学Python 12期:Python基础课 一木.溪桥学Python-09:函数的返回值.作用域.作用域的优先级.递归函数.内置文件中常用方法.匿名 ...
- Go 学习笔记(67)— Go 并发安全字典 sync.Map
1. 并发不安全的 map Go 语言中的 map 在并发情况下,只读是线程安全的,同时读写是线程不安全的. 换句话说,在同一时间段内,让不同 goroutine 中的代码,对同一个字典进行读写操作是 ...
- Python 将字符串转为字典
引言 在工作中遇到一个小问题,需要将一个 Python 的字符串转为字典,比如字符串: user_info = '{"name" : "john", " ...
- 【C#】集合_哈希表_字典_泛型_文件
数组能做到:存放同种类型数据,且数据个数确定 object类型的数组能满足:放各种类型的数据,确定放多少个,但是随意插入元素,数组做不到 集合能做到:存放各种数据类型,且不确定存放多少个,能做到随意插 ...
- Python两个字典键同值相加的几种方法
版权声明:本文为博主原创文章,遵循 CC 4.0 by-sa 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/Jerry_1126/article/d ...
- pytorch 状态字典:state_dict 模型和参数保存
pytorch 中的 state_dict 是一个简单的python的字典对象,将每一层与它的对应参数建立映射关系.(如model的每一层的weights及偏置等等) (注意,只有那些参数可以训练的l ...
- Python 字典(Dictionary) get()方法
Python 字典(Dictionary) get()方法 描述 Python 字典(Dictionary) get() 函数返回指定键的值,如果值不在字典中返回默认值. 语法 get()方法语法: ...
- python 把2个列表或者2个元组转成字典
python 把2个列表或者2个元组转成字典 使用映射的方法即可 语法如下: 字典 = dict(zip(list1,list2)) 说明: zip 是将2个列表或者2个元组合并 list1 是字典的 ...
- python 在字典插入值和修改字典value值的方法
字典插入值 使用update是字典增加内容 dict_a = {"a": "1", "b": "2", "c& ...
最新文章
- 利用blktrace分析磁盘I/O
- 10亿级数据规模的半监督图像分类模型,Imagenet测试精度高达81.2% | 技术头条...
- 腾讯员工:越来越多的新生都想要学计算机专业,好日子长不了
- django--favicon.ico
- Flutter开发之布局-3-center(17)
- 简述平均池化和最大池化
- tensorflow sobel算子实现
- SVN项目,快速查看项目的当前版本号
- php Heredoc应用说明
- cocos2d对动画的各种操作
- html select 修改默认箭头样式,自定义select标签箭头样式
- C# The user specified as a definer (‘root‘@‘%‘) does not exist
- log4j2配置文件log4j2.xml
- eclipse默认项目部署路径(.metadata\.plugins\org.eclipse.wst.server.core\tmp0\wtpwebapps) 改为自己的tomcat真实路径方法
- ant批量处理word文件内容_word多个文件批量替换内容
- [转] Spring XML配置十二个最佳实践
- 企业数字化转型必备利器之微服务扩展
- iOS开发之国际化(二)
- Glusterfs的安装及简单使用
- iOS 无线打印功能(AirPrint)