《Python语言程序设计》 —2.2.6 Dictionary

举报
华章计算机 发表于 2019/11/18 16:26:14 2019/11/18
【摘要】 本节书摘来自华章计算机《Python语言程序设计》一书中第2章,第2.2.6节,作者是王恺 王志 李涛 朱洪文。

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']访问该字典中的元素。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。