为了账号安全,请及时绑定邮箱和手机立即绑定

如何保证dict的处理顺序?

如何保证dict的处理顺序?

慕村9548890 2022-06-14 09:50:42
dict = {1:'Page 1 contents', 2:'Page 2 contents', 3:'Page 3 contents'}for pagenum, pagecontents in dict.items():此代码是否保证页面将按顺序 1、2 和 3 处理?如果不是,那么有什么方法可以保证这一点?
查看完整描述

2 回答

?
慕码人8056858

TA贡献1803条经验 获得超6个赞

一般的答案是:没有这样的保证。在 Python3.6 之前,不保证 dicts 有任何排序。由于 Python3.7 字典保证是插入顺序的,这不一定与您期望的相同。除非 1,2,3,... 顺序实际上是插入顺序(它在您的文字字典案例中,但通常您不处理文字字典)。


所以这里有几件事你可以做100%确定:


如果您需要保留字典,那么最快的方法就是像这样简单地循环:


pagenum = 0

while True:

    pagenum += 1

    try:

        pagecontents = dict[idx]

    except KeyError:

        break

    // do stuff

因为你似乎知道键总是数字。但是,差距和其他不规则行为是一个问题。因此,如果是这种情况,那么您可以在循环之前进行排序:


for pagenum, pagecontents in sorted(dict.items()):

    // do stuff

尽管这要慢得多。


最后考虑从 dict 切换到实际上支持任意排序的结构,比如 list。


查看完整回答
反对 回复 2022-06-14
?
MMMHUHU

TA贡献1834条经验 获得超8个赞

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


for pagenum, pagecontents in sorted(dict.items()):

这应该有助于您的事业。


查看完整回答
反对 回复 2022-06-14
  • 2 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信