【发布时间】:2010-10-24 12:29:37
【问题描述】:
看起来字典的keys() 和values() 方法返回的列表总是一对一的映射(假设字典在调用这两个方法之间没有改变)。
例如:
>>> d = {'one':1, 'two': 2, 'three': 3}
>>> k, v = d.keys(), d.values()
>>> for i in range(len(k)):
print d[k[i]] == v[i]
True
True
True
如果你不改变调用keys()和调用values()之间的字典,假设上面的for循环总是打印True是错误的吗?我找不到任何文件证实这一点。
【问题讨论】:
-
在 CPython 3.7(可能是更高版本)中,您可能依赖于匹配插入顺序的字典的迭代顺序。 mail.python.org/pipermail/python-dev/2017-December/151283.html
-
@BallpointBen 它在 CPython 3.6 及更高版本以及从 Python 3.7 开始的所有其他 Python 实现中
标签: python