1

我想按我的顺序拿到我的钥匙。但是,它不适用于字典和 Collections.OrderedDict。

from collections import OrderedDict

data = OrderedDict({
  "Name1": "value1",
  "Name2": "value2"
})

for key in data.keys():
  print(key)

这段代码表明Name3 Name4 .... 它没有任何顺序。我的数据在键中没有字母顺序,我必须按我的顺序获取键。

我发现字典不是按顺序设计的。那么,我可以将哪些结构与键值对一起使用?或者有什么方法可以按自定义顺序使用字典?(输入顺序..?)

4

2 回答 2

3

您需要从此更改订购字典的结构

data = OrderedDict({
  "Name1": "value1",
  "Name2": "value2",
  ...
})

对此

data = OrderedDict([('Name1', 'value1'), ('Name2', 'Value2')])

于 2020-01-16T09:29:35.097 回答
0

tl;dr:使用 Python 3.7 或更高版本。


dictPython 3.7 及更高版本中的 s 始终是有序的。这适用于各种迭代:

字典保留插入顺序。请注意,更新密钥不会影响顺序。删除后添加的键插入到最后。

在 3.7 版更改: 字典顺序保证为插入顺序。

也适用于popitem()方法

在 3.7 版更改:现在保证 LIFO 顺序。在以前的版本中,popitem() 将返回任意键/值对。

https://docs.python.org/3/library/stdtypes.html#dict.popitem

于 2020-01-16T09:38:31.303 回答