Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.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:按添加的顺序检索字典键?_Python_Sorting_Dictionary_Key - Fatal编程技术网

Python:按添加的顺序检索字典键?

Python:按添加的顺序检索字典键?,python,sorting,dictionary,key,Python,Sorting,Dictionary,Key,在Python中,是否有一种方法可以按照添加项的顺序检索键列表 String.compareMethods = {'equals': String.equals, 'contains': String.contains, 'startswith': String.startswith, 'endswith': String.endswith} 您

在Python中,是否有一种方法可以按照添加项的顺序检索键列表

String.compareMethods = {'equals': String.equals,
                         'contains': String.contains,
                         'startswith': String.startswith,
                         'endswith': String.endswith}
您在这里看到的键是用于选择下拉框的,因此顺序很重要

有没有一种方法不需要单独列出清单,也不需要把我要做的事情过度复杂化?就我所见,由于所涉及的散列,这是不可能的

我使用的是Python2.6.x。

在Python2.7+上或在Python的旧版本上使用。您应该能够使用pip install ORDERDEDICT或easy_install ORDERDEDICT为Python 2.4-2.6安装它

它是dict的一个子类,因此任何接受dict的方法也将接受OrderedDict。

您所需要的被调用


是的,但他在Python2.6上,所以没有collections.OrderedDict。确切地说,这就是我添加额外信息的原因。所以,只有添加自定义dict的方法。我不像大多数人那样处于通常的Python环境中,所以我必须检查这是否对我来说是过于复杂的事情。@Kawu这是一个单独的类。请参阅,包装所依据的配方。如果你愿意的话,你可以简单地复制粘贴到你现有的模块中——这并不复杂。当然可以,但这有点粗糙。我可能不得不这样做,因为我无法预见这个脚本运行的版本。否则,我必须检查版本,然后使用一些条件逻辑来使用Python提供的OrderedDict(如果是在2.7+env中),或者回退到我提供的实现。不知道这是否可能,我也不知道这是否可取。@Kawu try:from collections import OrderedDict和except:import OrderedDict或您在此处的整个实现
from collections import OrderedDict

d = OrderedDict();
d['equals'] = String.equals
d['contains'] = String.contains
# ...