猿问

如何保证dict的处理顺序?

dict = {1:'Page 1 contents', 2:'Page 2 contents', 3:'Page 3 contents'}


for pagenum, pagecontents in dict.items():

此代码是否保证页面将按顺序 1、2 和 3 处理?如果不是,那么有什么方法可以保证这一点?


慕村9548890
浏览 82回答 2
2回答

慕码人8056858

一般的答案是:没有这样的保证。在 Python3.6 之前,不保证 dicts 有任何排序。由于 Python3.7 字典保证是插入顺序的,这不一定与您期望的相同。除非 1,2,3,... 顺序实际上是插入顺序(它在您的文字字典案例中,但通常您不处理文字字典)。所以这里有几件事你可以做100%确定:如果您需要保留字典,那么最快的方法就是像这样简单地循环:pagenum = 0while True:    pagenum += 1    try:        pagecontents = dict[idx]    except KeyError:        break    // do stuff因为你似乎知道键总是数字。但是,差距和其他不规则行为是一个问题。因此,如果是这种情况,那么您可以在循环之前进行排序:for pagenum, pagecontents in sorted(dict.items()):    // do stuff尽管这要慢得多。最后考虑从 dict 切换到实际上支持任意排序的结构,比如 list。

MMMHUHU

dict = {1:'Page 1 contents', 2:'Page 2 contents', 3:'Page 3 contents'}for pagenum, pagecontents in sorted(dict.items()):这应该有助于您的事业。
随时随地看视频慕课网APP

相关分类

Python
我要回答