Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/310.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 - Fatal编程技术网

具有可变数组键的Python字典

具有可变数组键的Python字典,python,Python,当我在python上运行这个程序时,我得到的第一个元素是S_REDIR。有人能解释一下为什么吗?字典不能维持秩序。通过迭代它们得到的顺序可能与插入元素的顺序不同。这是您几乎即时按键查找值所付出的代价。简言之,您看到的行为是正确的和预期的,甚至可能因Python解释器的运行而异。这是正常的行为。内字典和设置使用。如果您想要排序的键,请使用self.PARSE\u TABLE.keys.sort()。此外,您还可以使用OrderedDict from.字典默认情况下以其方便的顺序存储所有键,而不是按

当我在python上运行这个程序时,我得到的第一个元素是S_REDIR。有人能解释一下为什么吗?

字典不能维持秩序。通过迭代它们得到的顺序可能与插入元素的顺序不同。这是您几乎即时按键查找值所付出的代价。简言之,您看到的行为是正确的和预期的,甚至可能因Python解释器的运行而异。

这是正常的行为。内字典和设置使用。如果您想要排序的键,请使用
self.PARSE\u TABLE.keys.sort()
。此外,您还可以使用OrderedDict from.

字典默认情况下以其方便的顺序存储所有键,而不是按照我们给出的顺序

如果应该保持键的顺序,那么可以使用OrderedDict,它是从python版本3.0实现的


另外,我认为排序键对保留给定的顺序没有任何帮助。

cpython2.7也有
OrderedDict
self.PARSE_TABLE={"$_ERROR":self.WEEK_ERRORS,"$_INFORM":self.WEEK_INFORM,"$_REDIR":self.WEEK_REDIRECTS,"$_SERVER_ERROR":self.WEEK_SERVER_ERROR,"$_BYTES":self.WEEK_BYTES,"$_HITS":self.WEEK_HITS}


for j in self.PARSE_TABLE:
            print j
            break