-2
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 有人可以解释为什么吗?

4

3 回答 3

0

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

于 2013-10-09T05:28:35.687 回答
0

这是正常的行为。内部字典并使用哈希码设置。如果您想要订购的钥匙,请使用self.PARSE_TABLE.keys.sort(). 您也可以使用集合库中的 OrderedDict 。

于 2013-10-09T05:30:57.340 回答
0

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

如果要保持键的顺序,您可以使用从 python 3.0 版开始实现的 OrderedDict

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

于 2013-10-09T05:36:38.420 回答