0

假设我有一个 dict d = {'a': 1, 'b': 2},然后d.keys()返回['a', 'b'],我可以指望d.values()[1, 2]吗?

4

1 回答 1

2

如果您需要键和值,则应使用dict.items(),这会使问题变得毫无意义。

答案是:是的,它们通常是相同的顺序,但是不,你不能相信这一点。原因是keys()它将按内部顺序列出键(这取决于哈希值)。values()通常会通过返回每个键的值来列出值,并且键再次将按内部顺序排列。所以是的,他们会匹配。对于 Python 内置的 dict 类,它们将匹配:

如果 items()、keys()、values()、iteritems()、iterkeys() 和 itervalues() 被调用而没有对字典进行干预修改,则列表将直接对应。

但这是一个实现细节,不是您的平台,而是映射类。因此,如果您的映射不是内置的 dict 类,您就不能再确定是这种情况。并且使用 Python 的“鸭子打字”,您不应该假设您正在使用 dict 类。

但如上所述,这个问题毫无意义,你永远不需要相信它。

于 2013-04-03T06:47:35.390 回答