Python中的字典学习笔记

技术

字典的格式:{"key":"value"}

key表示数据的含义,value表示对应的数据的值
字典是一种可变的数据类型,从python3.7开始,字典是有序的。

字典创建的方式

1、通过{},要使用key:value的格式,因为{}还可以用来创建集合。直接使用{}表示的是一个空的字典。。

注意:

字典的key必须是可以进行哈希计算的数据,可进行hash的数据结构通常是指能通过哈希函数hash()计算出唯一值的数据结构,比如整数、字符串、元组等。

整数 1 和浮点数 1.0 会被当作相同的键

像列表这种可变类型,是不能放在字典里面当key的哟

picture.image

用元组当key是不会报错的:

picture.image

2、通过dict()去创建。

  
info = dict(name="小博", age=31, wechat="xiaobotester")  
print(info)   
打印如下:  
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester'}

字典修改

1、字典合并

  
info = dict(name="小博", age=31, wechat="xiaobotester")  
info.update({"name":"张三","sex":"boy"})  
print(info)  
打印如下:  
{'name': '张三', 'age': 31, 'wechat': 'xiaobotester', 'sex': 'boy'}

2、直接使用dict[key]=value进行修改或者添加key的值

  
info = dict(name="小博", age=31, wechat="xiaobotester")  
info["sex"]="boy"  
print(info)  
打印如下:  
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester', 'sex': 'boy'}

3、使用setdefault()方法。用于获取字典中指定键的值。如果键存在于字典中,则返回该键对应的值;如果键不存在于字典中,则将该键插入字典,并返回默认值(如果指定了默认值)或者 None。

  
info = dict(name="小博", age=31, wechat="xiaobotester")  
print( info.setdefault("wechat","123"))  
print( info.setdefault("wechat1","123"))  
print( info.setdefault("wechat2"))  
print(info)  
打印如下:  
xiaobotester  
123  
None  
{'name': '小博', 'age': 31, 'wechat': 'xiaobotester', 'wechat1': '123', 'wechat2': None}

字典删除相关的操作:

  
info = dict(name="小博", age=31, 公众号="小博测试成长之路")  
info.pop("name") # 移除指定的key-value的键值对  
print(info)  
info.popitem() # 移除最后一个key-value的键值对  
print(info)  
info.clear() #清空字典  
print(type(info))  
print(info)  
打印如下:  
{'age': 31, '公众号': '小博测试成长之路'}  
{'age': 31}  
<class 'dict'>  
{}

也可以使⽤ del 字典[键] 可以删除字典中的指定元素:

  
info = dict(name="小博", age=31, wechat="xiaobotester")  
del info["name"]  
print(info)  
打印如下:  
{'age': 31, 'wechat': 'xiaobotester'}

字典的取值相关的操作:

最常见的一种方式就是dict[key],也可以用dict.get(key)进行取值。

先看看用中括号取值的缺点:

picture.image

从上面的实例中可以看出,中括号的这种方式取值,当key不存在的时候,取值会报错。我以前没学习其他用法的时候,都是用中括号取值,然后取值之前判断一下key是否存在,接下来我们看使用get方法取值:

picture.image

使用get的好处是:当字典里面的key不存在的时候,并不会报错,同时还可以设置默认值,这个用法的话,在一些场景下可以帮助我们精简很多代码。

字典的其他用法:

  
d = dict(a=1, b=2, c=3)  
print(d.keys()) # 返回所有的key  
print(d.values()) # 返回所有的value  
print(d.items()) # 返回所有的key-value  
打印结果:  
dict_keys(['a', 'b', 'c'])  
dict_values([1, 2, 3])  
dict_items([('a', 1), ('b', 2), ('c', 3)])
  
d = dict(a=1, b=2, c=3)  
for index, (key, value) in enumerate(d.items()):  
 print(f"Index: {index}, Key: {key}, Value: {value}")  
打印结果:  
Index: 0, Key: a, Value: 1  
Index: 1, Key: b, Value: 2  
Index: 2, Key: c, Value: 3

End

想进学习交流群和同行一起探讨交流的可以加我好友,如果觉得文章对你有帮助的话,欢迎点赞转发~

👇👇👇 picture.image

👆长按上方二维码2秒,关注我

关注公众号,测试干货及时送达picture.image

往期 精彩回顾

picture.image

一篇文章为你揭秘pytest的基本用法

Anaconda-一个开源的Python发行版本

Python脚本读取Consul配置信息

Python中使用pickle库进行数据的序列化存储

Python小知识-函数传参怎么设置期望的传参类型?

python解析xml遇到的问题分享(命名空间有关)

分享一下最近使用python字典取值用法的收获

Python里面怎么判断某个字符串是否包含列表中的某一个元素

Python中列表的extend()方法介绍

Python中鸭子类型与多态介绍

Python中的抽象基类介绍

Python中的type与isinstance的区别

Python中类的属性、多继承、自省机制中的__mro__、__dict__ 和dir介绍

Python中__new__和__init__的区别与联系

picture.image

0
0
0
0
关于作者

文章

0

获赞

0

收藏

0

相关资源
KubeZoo: 轻量级 Kubernetes 多租户方案探索与实践
伴随云原生技术的发展,多个租户共享 Kubernetes 集群资源的业务需求应运而生,社区现有方案各有侧重,但是在海量小租户的场景下仍然存在改进空间。本次分享对现有多租户方案进行了总结和对比,然后提出一种基于协议转换的轻量级 Kubernetes 网关服务:KubeZoo,该方案能够显著降低多租户控制面带来的资源和运维成本,同时提供安全可靠的租户隔离性。
相关产品
评论
未登录
看完啦,登录分享一下感受吧~
暂无评论