假设我有一个 dict d = {'a': 1, 'b': 2}
,然后d.keys()
返回['a', 'b']
,我可以指望d.values()
它[1, 2]
吗?
问问题
236 次
1 回答
2
如果您需要键和值,则应使用dict.items()
,这会使问题变得毫无意义。
答案是:是的,它们通常是相同的顺序,但是不,你不能相信这一点。原因是keys()
它将按内部顺序列出键(这取决于哈希值)。values()
通常会通过返回每个键的值来列出值,并且键再次将按内部顺序排列。所以是的,他们会匹配。对于 Python 内置的 dict 类,它们将匹配:
如果 items()、keys()、values()、iteritems()、iterkeys() 和 itervalues() 被调用而没有对字典进行干预修改,则列表将直接对应。
但这是一个实现细节,不是您的平台,而是映射类。因此,如果您的映射不是内置的 dict 类,您就不能再确定是这种情况。并且使用 Python 的“鸭子打字”,您不应该假设您正在使用 dict 类。
但如上所述,这个问题毫无意义,你永远不需要相信它。
于 2013-04-03T06:47:35.390 回答