将字典中的键插入列表并保持位置



只需尝试从字典中的键创建一个列表,同时保持键的顺序不变。我知道python列表中元素的顺序是持久的。

我一直无法弄清楚为什么在打印列表内容后更改了顺序。代码:

orderedDict = {'C': 2, 'A': 3, 'B': 3}

orderedList = []
for k,v in orderedDict.items():
orderedList.append(k)
print(orderedList)
['A', 'B', 'C']
print(type(orderedList))
<class 'list'>

我希望结果是:['C', 'A', 'B']

有什么建议吗?

感谢

您可以使用列表理解:

orderedDict = {'C': 2, 'A': 3, 'B': 3}
orderedList = [key for key in orderedDict.keys()]

自python 3.6以来,默认的dict对象维护项目的插入顺序。对于以前的版本,请考虑使用OrderedDict

from collections import OrderedDict
ordered_dict = OrderedDict([('C', 2), ('A', 3), ('B', 3)])
print(ordered_dict.keys())
# odict_keys(['C', 'A', 'B'])

对它的操作与常规dict非常相似(即,您仍然可以使用索引[]来分配和获取键的值(。记住,这在py3.6之后仍然没有过时,因为它甚至有重新排列密钥的实用方法,如move_to_end

最新更新