字典——映射操作 | 第二部分 类型与操作 —— 第 4 章: 介绍 python 对象类型 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-380玩彩网官网入口

未匹配的标注

当写作字面量时,字典被编码在大括号中并由一系列“键:值”对组成。当需要用键和一组值联系起来时(比如,描述某事物的属性),字典很有用。举个例子,考虑下面含有三个项的字典(有键“food”,“quantity”和“color”,或许还有一个假想的菜单明细?):

>>> d = {'food': 'spam', 'quantity': 4, 'color': 'pink'}

可以通过键索引这个字典来获取和更改该键的相关值。字典索引操作使用和在序列中使用的相同语法,但在方括号中的项是键,而非相对位置:

>>> d['food'] # 获取键“food”的值
'spam'
>>> d['quantity']  = 1 # 给“quantity”的值加1
>>> d
{'color': 'pink', 'food': 'spam', 'quantity': 5}

虽然构建字典的大括号字面量形式确实有在使用,但其他方式更常见(在程序运行前就知道所有的程序数据是很少见的)。比如,下面的代码以空字典开始并一次填充一个键值对。不像列表中的边界外赋值(它是禁止的),对新字典键的赋值创建了那些键:

>>> d = {}
>>> d['name'] = 'bob' # 通过赋值创建键
>>> d['job'] = 'dev'
>>> d['age'] = 40
>>> d
{'age': 40, 'job': 'dev', 'name': 'bob'}
>>> print(d['name'])
bob

这里正有效地使用字典键作为一条描写某人的记录的字段名。在其他应用中,字典还能被用来替换搜索操作——通过键索引字典通常是在python中编码搜索的最快方法。

后面将学:还可以通过将关键词参数(在函数调用中的一个特殊的name=value语法)或将运行时(比如,从文件)获得的键和值序列的合并结果传递给 dict类型名称来创建字典。下面两种方法都创建和前面例子和它的等价{}字面量形式相同的字典,然而第一个往往输入更少:

>>> bob1 = dict(name='bob', job='dev', age=40) # 关键词
>>> bob1
{'age': 40, 'name': 'bob', 'job': 'dev'}
>>> bob2 = dict(zip(['name', 'job', 'age'], ['bob', 'dev', 40])) # 合并
>>> bob2
{'job': 'dev', 'name': 'bob', 'age': 40}

注意字典键的从左到右顺序是如何被弄乱的。映射不是按位置排序的,所以除非很幸运,它们的结果的顺序和输入不同。确切的顺序根据python的不同而可能不同,但不应该依赖它,也不应该期待你的结果匹配本书中的结果。

在python 3.10中,输入顺序和结果顺序一致。

本文章首发在 380玩彩网官网入口 网站上。

上一篇 下一篇
讨论数量: 0



暂无话题~
网站地图