带有可变数组键的Python字典

时间:2013-10-09 05:25:56

标签: python

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

当我在我的python上运行时,我得到的第一个元素是S_REDIR,有人可以解释为什么吗?

3 个答案:

答案 0 :(得分:0)

词典不维持秩序。迭代它们的顺序可能不是插入元素的顺序。这是您按密钥即时查找值所支付的价格。简而言之,您所看到的行为是正确的和预期的,甚至可能因Python解释器的运行而异。

答案 1 :(得分:0)

这是正常的行为。在词典中并使用hash codes进行设置。如果您想要订购密钥,请使用self.PARSE_TABLE.keys.sort()。您也可以使用collection library中的OrderedDict。

答案 2 :(得分:0)

默认情况下,

字典按照自己方便的顺序存储所有键,而不是我们给出的顺序。

如果要维护键的顺序,你可以使用从python 3.0版开始实现的OrderedDict

P.S。我认为排序键在保留给定顺序方面没有任何帮助。