ad

打开《Python入门与实战》_一步步学会Python_5.4 字典 (dict)

admin 68 2023-10-25

【摘要】 本书摘自《Python入门与实战》一书中第5章,第4节,由王跃进主编。

5.4 字典 (dict)

在实际应用中,列表往往用来存储一组性质相同的数据,如学生姓名、课程名称 等,元组多用于存储一系列不可变的结构,如棋盘坐标。而实际生活中还有类似这种 需求:描述一个人的基本特征(姓名、年龄、身高、体重)。若用列表可表示为: person =[张粟',18,1.75,55],显然,从字面上并不能清晰地理解元素18、1.75、55表示的意 义。如果写为'name':'张粟','age':18,"height':1.75,'weight':55,这些数字的意义就 明确得多。

Python 把像上面这样用“键:值”对的形式来存储数据的容器称为字典。本节我 们介绍字典的相关知识。

5.4.1 字典的基本特征

打开《Python入门与实战》_一步步学会Python_5.4 字典 (dict)

形式:dictname ={keyl:valuel,key2:value2,……},dictname 字典名, keyl:valuel 键值对。键和值之间用“:”隔开,键值对与键值对之间用“,”隔开,用“{}”包裹 所有键值对。基本特征如下:

(1)键必须是不可变类型且具有唯一性。可以使用数字、字符串、元组作为键。

(2)字典是无序的,不支持用索引访问。

(3)字典的值可以是任何Python支持的数据类型,且可以任意嵌套。

(4)与列表和元组比较,字典有更快的检索速度。

5.4.2 字典的创建

1. 使用赋值语句直接创建

语法格式如下:dictname ={keyl:valuel,key2:value2, … … }

其中, dictname 表示字典名, keyl,key2 表示元素的键。 valuel,value2 表示元素 的值。

2. 创建空字典

创建字典非常简单,直接使用下面的代码:

dictname ={}

dictname =dict()

3. 通过映射函数创建

语法格式如下:

dictname =dict(zip(iterablel, iterable2))

其中, iterable1 表示一个可迭代对象,用于指定要生成字典的键; iterable2表示一个可 迭代对象,用于指定要生成字典的值。这里不必纠结什么是可迭代对象,暂且简单理 解为列表或元组。

例子:

name=('c','c++','Python',java')

price =[30,45,50.5,27]

book info =dict(zip(name,price))

将创建{'c':30,'c++':45,'Python':50.5,java':27}字典。

说明:

(1)zip()是Python的内置函数,功能是将多个可迭代对象作为参数,将对象中对 应的元素打包成一个个元组,然后返回由这些元组组成的列表,元组的个数与最短的 可迭代对象的长度相同。

例如:

>>>li =list(zip([1,2,3],[4,5,6]))

>>>[(1,4),(2,5),(3,6)]

>>>li =list(zip([1,2,3,4],[5,6],(7,8,9))

>>>[(1,5,7),(2,6,8)]

(2)dict()是Python 的内置函数,用于创建一个字典。

4. 通过“键=值”的形式创建

语法格式如下:

dictname =dict(key1=valuel,key2=value2,)

其中, key1,key2 表示元素的键; valuel,value2表示元素的值。

例子:

arms=dict('唐僧'=咒语,孙悟空'='金箍棒',猪八戒'=’钉耙')

将创建{'唐僧:咒语’,'孙悟空':'金箍棒’,'猪八戒!:'钉耙}字典。

5. 通 过dict对象的 fromkeys() 方法创建值为空的字典

语法格式如下:

dictname =dict.fromkeys(iterable1)

iterable1为字典键的可迭代对象。

例子:

name =['李宏彦,马云’,马化腾,刘庆峰]

batk =dict.fromkeys(name)

将创建{'李宏彦:None,'马云':None,'马化腾':None,刘庆峰':None} 空字典。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 [email protected] 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:打开《Python入门与实战》_一步步学会Python_5.2.2.1 二分查找法
下一篇:打开《Python入门与实战》_一步步学会Python_5.3 元组 (tuple)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~

×