《Python语言程序设计》 —2.2.6 Dictionary
2.2.6 Dictionary
Dictionary(字典)是另一种无序的对象集合。但与集合不同,字典是一种映射类型,每一个元素是一个键(key):值(value)对。在一个字典对象中,键必须是唯一的,即不同元素的键不能相同;另外,键必须是可哈希数据,即键不能是列表、元组、集合、字典等类型;值可以是任意类型。不包含任何元素的字典(即{})称为空字典。
创建字典时,既可以使用“{...}”,也可以使用dict函数。如果要创建一个空字典,可以使用“{}”或dict(),如下面的代码所示:
1 a={}
2 b=dict()
这两条语句的作用相同,执行完毕后,a和b是两个不包含任何元素的空字典。
如果在创建字典的同时,需要给出字典中的元素,则可以使用下面的方法:
1 {k1:v1,k2,:v2,…,kn:vn} #ki和vi(i=1,2,…,n)分别是每一个元素的键和值
2 dict(**kwarg) #**kwarg是一个或多个赋值表达式,两个赋值表达式之间用逗号分隔
3 dict(z) #z是zip函数返回的结果
4 dict(ls) #ls是元组的列表,每个元组包含两个元素,分别对应键和值
5 dict(dictionary) #dictionary是一个已有的字典
例如,对于下面的代码:
1 a={'one':1, 'two':2, 'three':3}
2 b=dict(one=1, two=2, three=3)
3 c=dict(zip(['one','two','three'], [1,2,3]))
4 d=dict([('one',1), ('two',2), ('three',3)])
5 e=dict({'one':1, 'two':2, 'three':3})
这5条语句创建的5个字典对象的元素完全相同,使用print函数查看每一个变量,都能得到如下输出结果:
{'one': 1, 'two': 2, 'three': 3}
提示 zip函数的参数是多个可迭代的对象(列表等),其功能是将不同对象中对应的元素分别打包成元组,然后返回由这些元组组成的列表。在Python 3.x中为了减少内存,zip函数返回的是一个对象,可以通过list函数转换为列表,如通过list(zip(['one','two','three'], [1,2,3]))可得到列表[('one', 1), ('two', 2), ('three', 3)]。
与列表等序列对象不同,在访问字典中的元素时不能通过数字下标方式访问,而是通过键访问。例如,对于下面的代码:
1 info={'name':'张三', 'age':19, 'score':{'python':95,'math':92}}
2 print(info['name']) #输出“张三”
3 print(info['age']) #输出19
4 print(info['score']) #输出{'python': 95, 'math': 92}
5 print(info['score']['python']) #输出95
6 print(info['score']['math']) #输出92
执行完毕后,第2~6行代码分别按对应注释中的描述输出结果。由于info['score']访问到的仍然是一个字典,所以后面可以再分别通过info['score']['python']和info['score']['math']访问该字典中的元素。
- 点赞
- 收藏
- 关注作者
评论(0)