社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

python的dict.items()是否总是返回相同的顺序?

Saqib Ali • 5 年前 • 1516 次点击  

是否保证python 2.x的内置方法 dict.items() dict.iteritems() 是否始终按相同顺序返回项目?或者这些方法是非确定性的?

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/39064
 
1516 次点击  
文章 [ 2 ]  |  最新文章 5 年前
wailinux
Reply   •   1 楼
wailinux    6 年前

您需要这样的定制功能:

d = {'a': 4, 'c': 1, 'b': 2, 'd': 3}
def sorteddict(d={}):
    return sorted(d.items(),key=lambda x: x[1])
print(sorteddict(d))
Tim Peters
Reply   •   2 楼
Tim Peters    6 年前

在程序的一次运行中,并提供了一个dict d 在两者之间没有变异,那么

d.items()
d.iteritems()
d.keys()
d.iterkeys()
d.values()
d.itervalues()

它们都是一致的,并且每次都返回相同的序列。

但是,如果修改dict,它可能会在内部收缩或增长并重新排列,这会改变顺序。在下一个突变之前,它们将保持不变。

编辑:有一个例外,这是经过深思熟虑的。如果仅替换与现有键关联的值,则顺序将 改变。所以如果 k in d True , d[k] = v 是无害的。但是,如果添加新密钥或删除密钥,则所有赌注都将取消。