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