是否保证python 2.X的内置方法dict.items()
和dict.iteritems()
将始终以相同的顺序返回项目?或者这些方法是非确定性的吗?
在一个程序的单个运行,并提供一个字母d
之间没有变异,然后
d.items()
d.iteritems()
d.keys()
d.iterkeys()
d.values()
d.itervalues()
每个都是一致的,每次都返回相同的序列。
但是如果你修改了dict,它可能会缩小或增长并在内部重新排列,这可能会改变顺序。然后在下一次突变之前保持不变。
编辑:一个例外,这是非常慎重的。如果仅替换与现有密钥关联的值,则订单不会更改。因此,如果k in d
是True
,d[k] = v
是无害的。但是,如果您添加新密钥或删除密钥,则所有投注均已关闭。
你需要自定义这样的功能:
d = {'a': 4, 'c': 1, 'b': 2, 'd': 3}
def sorteddict(d={}):
return sorted(d.items(),key=lambda x: x[1])
print(sorteddict(d))