字典实战——字典用法说明——使用字典模拟灵活的列表:整数键 | 第二部分 类型与操作 —— 第 8 章: 列表和字典 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网

未匹配的标注

前面列表中的最后一点非常重要,需要用几个例子来说明。使用列表时,向远离列表末尾的偏移量赋值是非法的:

>>> l = []
>>> l[99] = 'spam'
traceback (most recent call last):
file "", line 1, in ?
indexerror: list assignment index out of range

虽然可以使用重复来预先分配所需要的那么大的列表(比如:[0]*100),但还可以使用不需要这种空间分配的字典来做类似的事情。通过使用整数键,字典能模拟出似乎根据偏移量赋值来增长的列表:

>>> d = {}
>>> d[99] = 'spam'
>>> d[99]
'spam'
>>> d
{99: 'spam'}

这里,看起来好像d是一个100项的列表,但它其实是单条目的一个字典;键99的值是字符串'spam'。可以使用很像列表的偏移量来访问这个结果,如果需要,使用getin测试来捕获不存在的键,但不需要为所有可能需要在未来赋值的位置分配空间。当像这样使用时,字典像更灵活的列表的等价物。

作为另一个例子,还可以在之前的电影数据库的第一个代码中避免把引号括起来,虽然是以一些表现力作为代价(键不能包含非数字的字符):

>>> table = {1975: 'holy grail',
... 1979: 'life of brian', # keys are integers, not strings
... 1983: 'the meaning of life'}
>>> table[1975]
'holy grail'
>>> list(table.items())
[(1979, 'life of brian'), (1983, 'the meaning of life'), (1975, 'holy
grail')]

本文章首发在 金年会app官方网 网站上。

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



暂无话题~
网站地图