1

我知道通常字典中键/值的顺序是任意的。但是,如果您声明一个字典“简写”(见下文),然后从不添加或删除任何键,这是否意味着键顺序将保持您声明的顺序?

我做了几个简短的实验,答案似乎是肯定的,但在我指望这个之前,我想确定一下。

当我说“速写”时,我的意思是一次性明确声明每个键和值:

myDict = {key1: val1, key2: val2, key3: val3, .... }
4

1 回答 1

11

Python 中的字典本质上是无序的。collections.OrderedDict如果您想保留顺序,请使用。请注意,collections.OrderedDict保留插入顺序

此外,还有一个反例,即密钥按声明顺序保存的概念:

>>> {1:2, 4:5, 2:3}
{1: 2, 2: 3, 4: 5}

字典键也不需要排序:

>>> {-1:-1, -2:-2, 1:1}
{1: 1, -2: -2, -1: -1}

所以,永远不要依赖字典键的顺序,除非你知道它是一个OrderedDict.

于 2013-01-30T20:48:44.603 回答