Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何保证dict的处理顺序?_Python_Python 3.x - Fatal编程技术网

Python 如何保证dict的处理顺序?

Python 如何保证dict的处理顺序?,python,python-3.x,Python,Python 3.x,该代码是否保证页面将按顺序1、2和3进行处理?如果没有,那么如何保证这一点呢?一般的答案是:没有这样的保证。在Python3.6之前,dicts不保证有任何顺序。由于Python3.7词典保证插入顺序,这与您所期望的不一定相同。除非1,2,3,。。。order实际上是插入顺序(在literal dict中,但通常不处理literal dict) 因此,这里有几件事可以让你100%确信: 如果您需要保留dict,那么最快的方法就是像这样简单地循环: pagenum=0 尽管如此: pagenum+

该代码是否保证页面将按顺序1、2和3进行处理?如果没有,那么如何保证这一点呢?

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

因此,这里有几件事可以让你100%确信:

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

pagenum=0
尽管如此:
pagenum+=1
尝试:
pagecontents=dict[idx]
除KeyError外:
打破
//做事
因为你似乎知道钥匙总是数字。不过,差距和其他不规则行为是一个问题。因此,如果是这种情况,则可以在循环之前进行排序:

对于pagenum,已排序的pagecontents(dict.items()):
//做事
虽然这要慢得多

最后考虑从DICT切换到一个实际上支持任意排序的结构,如列表。

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

for pagenum, pagecontents in dict.items():

这应该有助于你的事业

这取决于您的Python版本,在3.6+中为是,否则为否。为了保证使用OrderedDict,并按处理顺序插入元素。使用数组似乎更具逻辑性请参见或在
范围(1,最大(dct)+1)上迭代
?假设您的书没有缺页。那么在python 3.6以后的版本中,可以保证在dict.items()上使用for循环时,将按照插入的顺序检索项目吗?所以,如果项目是按顺序添加的,它们将按相同的顺序检索?只有当插入的顺序是任意的,并且我们希望以排序的方式检索时,我们才必须使用排序函数?如果插入总是按顺序进行,为什么要使用排序函数?
dict = {1:'Page 1 contents', 2:'Page 2 contents', 3:'Page 3 contents'}

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