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