是否保证 python 2.X 的内置方法dict.items()
并且dict.iteritems()
总是以相同的顺序返回项目?或者这些方法是不确定的?
问问题
1059 次
3 回答
6
在程序的单次运行中,如果 dictd
之间没有发生突变,则
d.items()
d.iteritems()
d.keys()
d.iterkeys()
d.values()
d.itervalues()
都与 each 一致,且 each 每次返回相同的序列。
但是,如果您修改 dict,它可能会缩小或增长并在内部重新排列自身,这可能会改变顺序。然后它将保持不变,直到下一次突变。
编辑:一个例外,这是非常刻意的。如果您只是替换与现有键关联的值,则顺序不会更改。所以如果k in d
是True
,d[k] = v
是无害的。但是,如果您添加新密钥或删除密钥,所有赌注都将关闭。
于 2018-09-11T03:35:51.573 回答
0
如果您有兴趣,您可以使用 Visual Code 并在您感兴趣的每个点添加断点,并监视局部变量在代码运行之间的差异......无论是通过相同的程序流程还是通过单独的运行。您还可以添加表情手表。这将允许您自己确认字典方法的行为,包括 dict.items() 和 dict.iteritems()
于 2020-01-31T22:16:31.837 回答
-1
您需要这样的自定义功能:
d = {'a': 4, 'c': 1, 'b': 2, 'd': 3}
def sorteddict(d={}):
return sorted(d.items(),key=lambda x: x[1])
print(sorteddict(d))
于 2018-09-11T03:51:49.037 回答