字典实战——示例:电影数据库 | 第二部分 类型与操作 —— 第 8 章: 列表和字典 |《学习 python:强大的面向对象编程(第 5 版)》| python 技术论坛-金年会app官方网
让我们看一个更现实的字典示例。为纪念python的同名者,下面例子创建了一个简单的内存中的 monty python 电影数据库,作为一个将电影发行时期years(键)映射到电影名称(值)的表。在编码过程中,可以通过对发布年份字符串进行索引来获取电影名称:
>>> table = {'1975': 'holy grail', # key: value
... '1979': 'life of brian',
... '1983': 'the meaning of life'}
>>>
>>> year = '1983'
>>> movie = table[year] # dictionary[key] => value
>>> movie
'the meaning of life'
>>> for year in table: # same as: for year in table.keys()
... print(year '\t' table[year])
...
1979 life of brian
1975 holy grail
1983 the meaning of life
最后一个命令使用了 for
循环,在第4章中预览过了但还没有详细讨论。如果不熟悉for循环,这个命令只是简单地迭代了表中的每个键然后打印出键和值的以tab分隔的列表。将在第13章中学习关于更多for循环的知识。
字典不是像列表和字符串的序列,但如果需要迭代字典中的项目,很简单——调用返回所有存储的键(可以使用 for 来迭代它们)的 字典的keys
方法。如果需要,在迭代键的同时可以在for循环内部从键索引到值,如同代码中所示。
事实上,python还让你迭代字典的键列表而无需在大多数for循环中真正调用 keys
方法。对任何字典d,for key in d
和完整的for key in d.keys()
是一样的。这其实只是前面提到的迭代器的另一个实例,它允许in
成员操作符也对字典起作用;更多关于迭代器的知识请参阅本书稍后部分。