字典实战——在Python 3.X 和 2.7 中的字典改变
本章到目前为止一直关注跨版本的字典基础,但在3.X中字典功能已经发生了突变。如果在使用2.X的代码,可能会遇到一些字典工具在3.X中要么表现得不同,要么完全缺失了。而且,3.X的编码者可以访问2.X中无法访问的额外字典工具(除了两个后向移植到2.7的)。
在3.X中的字典专有:
- 支持新的字典comprehension表达式,类似与列表和set comprehension
- 方法
D.keys
、D.values
、D.items
返回类set的可迭代的views
而非列表 - 因为前一点,需要通过排序的键用于扫描的新编码样式
- 不再支持直接地相对数值比较——而是手动比较
- 不再有
D.has_key
方法——而是使用in
成员测试
因为以后从3.X中后向移植,2.7中的字典(但不是更早的2.X):
- 支持前一个列表中的项1——字典 comprehension——作为3.X的直接后向移植
- 支持前一个列表中的项2——类set的可迭代的
views
——但是通过特殊方法名D.viewkeys
、D.viewvalues
、D.viewitems
;它们的nonview方法和以前一样返回列表
因为这些重叠,本节中的一些材料同时属于3.X和2.7,但被展示在3.X扩展的上下文中,因为它的起源。记住这一点,让我们了解一下在3.X和2.7中字典有哪些新增功能。
推荐文章: