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,有人可以解释为什么吗?
答案 0 :(得分:0)
词典不维持秩序。迭代它们的顺序可能不是插入元素的顺序。这是您按密钥即时查找值所支付的价格。简而言之,您所看到的行为是正确的和预期的,甚至可能因Python解释器的运行而异。
答案 1 :(得分:0)
这是正常的行为。在词典中并使用hash codes进行设置。如果您想要订购密钥,请使用self.PARSE_TABLE.keys.sort()
。您也可以使用collection library中的OrderedDict。
答案 2 :(得分:0)
字典按照自己方便的顺序存储所有键,而不是我们给出的顺序。
如果要维护键的顺序,你可以使用从python 3.0版开始实现的OrderedDict
P.S。我认为排序键在保留给定顺序方面没有任何帮助。