一篇文章让你了解什么是Python字典?
发布于 2021-09-13 07:41
前面已经接触过列表,元组,那这一章来说说字典。列表是用方括号括起来的,是可变的,元祖的是用小括号括起来的,是不可变的列表。而且在列表里边的很多方法,在元祖里边,也可以使用。那字典是什么样呢?字典和列表、元组有什么区别?字典的表示方法是什么呢,这一章节将详细讲解。
基本定义
字典:都是为了通过轻松查找某个特定的词语(键),从而找到它的定义 (值)。如下情况,字典比列表更加适用:
标示一个游戏棋盘的状态,每键都是由坐标值组成的元组;
存储文件修改时间,用名作为键;储文件修改时间,用名作为键;
数字电话 /地址簿
字典是由多个键 及与其对应的值构成字典是由多个键-值(项)对组成。
注意:字典中键是唯一的,值可以不。意:字典中键是唯一的,值可以不。
如下使用示例:
phonebook = {"Alice" : "1234" , "bob" : "3456" }
print(phonebook["bob"])
结果
3456
其中,phonebook就是一个字典结构,里面存储了两个键值对。通过phonebook[“bob”]访问键bob的值,打印的结果为3456,说明了键值对的一一对应关系。
dict函数
dict是Python保留的关键字方法,用于将元组、列表转换为字典格式。例如下面的代码:
items = [( "name" , "Leo" ), ("age" , 42 )]
d = dict (items) # 将键值对元组转换为字典
print (d)
d[ "name" ] = "Tom"
d[ "school" ] = "Hebei"
print (d[ "school" ])
print (d)
结果:
{'name': 'Leo', age': 42}
Hebei
{'school': 'Hebei', name': Tom', age': 42} {'school': 'Hebei', name': Tom', age': 42}
items原本是一个元组列表,里面有2对元素,分别为:( “name” , “Leo” )和(“age” , 42 ),然后通过dict方法将该元组转换为字典,就可以通过字典的方式来访问元组。实例代码:
phonebook中有 ("Alice", "1234")
和 (“Bela”, "2345")
两个元组,通过dict转换之后,打印到控制台,结果就是: {'Bela': '2345', 'Alice': '1234'}
, 从结果的格式可以看到,变量d已经是一个字典格式。当调用: d['Bob'] = '55555'
的时候,原来字典中没有Bob,经过这样一个操作,就相当于给原来额字典添加了一个元素,所以看到打印出来的结果就多了一个键值对了。 d['Alice'] = '4321'
就相当于修改了键为Alice的元组。
基本操作
字典都有哪些操作呢?以下,我们来看看一些最基本,最常用的操作。
len(d),d为字典,计算字典d的键值对数量
d[k], 返回关联到键 k上的值
d[k] = v,将值 v关联到键 k上
del d[k],删除键为 k的项
k in d, 检查d中是否包含有键为 k的项
代码示例:
# 基本字典操作
# 定义一个字典
phonebook = {"Alice" : "1234" , "bob" : "3456" ,"Bela" :"01031" }
# 打印键值对数量,字典的大小
print(len(phonebook))
# 打印Alice的值
print(phonebook[ "Alice" ])
# 修改Alice的值
phonebook[ "Alice" ] = "4321"
# 打印当前字典
print (phonebook)
del phonebook["Alice"]
# 打印当前字典
print (phonebook)
# 判断Alice是否存在
if "Alice" in phonebook:
print (True )
else :
print (False )
执行结果:
如上操作,对Alice进行修改,删除,最后寻找Alice的时候发现没有找到,其原因就是,前面已经删除了。如果前面我们删除的是Bob,那么,判断Alice是否存在的结果就是True了,示例如下:
如上代码,结果中,Alic就有了。这就是字典的基本的操作,重新赋值,返回键的值,计算长度,新增,删除等。字典也是Python常用的数据类型,之所以常用,一方面,键值对的应用较为普遍,另一方面在于键值的查询效率非常高,是O(1)的时间复杂度。
浏览网页:https://www.itxiaonv.com/,了解更多IT信息
END
本文来自网络或网友投稿,如有侵犯您的权益,请发邮件至:aisoutu@outlook.com 我们将第一时间删除。
相关素材