如果其他模型不响应-英雄云拓展知识分享
144
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 字典的基本特征
形式: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} 空字典。
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们 18664393530@aliyun.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~