Python 键从字典进入列表并保持位置

Python 键从字典进入列表并保持位置,python,list,dictionary,Python,List,Dictionary,只是尝试从字典中的键创建一个列表,同时保持键的顺序不变。我知道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)) <

只是尝试从字典中的键创建一个列表,同时保持键的顺序不变。我知道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'>

orderedList=[]
对于k,v,在orderedDict.items()中:
orderedList.append(k)
打印(订单列表)
['A','B','C']
打印(类型(orderedList))
我希望结果是:
['C','A','B']

有什么建议吗


谢谢

您可以使用列表理解:

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

您可以使用列表:

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

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

从集合导入订单数据
有序的,有序的
打印(已排序的目录键())
#odict_键(['C','A','B'])

此操作与常规dict非常相似(即,您仍然可以使用索引
[]
)来分配和获取键的值)。请记住,在py3.6之后,这仍然不是过时的,因为它有一些实用方法,甚至可以重新排列键,例如
move\u to\u end

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

从集合导入订单数据
有序的,有序的
打印(已排序的目录键())
#odict_键(['C','A','B'])

此操作与常规dict非常相似(即,您仍然可以使用索引
[]
)来分配和获取键的值)。请记住,在py3.6之后,这仍然不是过时的,因为它有一些实用方法,甚至可以重新排列键,例如
move\u to\u end

您使用的是哪种Python版本?您的代码会产生正确的输出。当我运行您的代码时,我会得到您想要的结果
['C',A',B']
您使用的是哪种Python版本?您的代码会产生正确的输出。当我运行您的代码时,我会得到您想要的结果
['C','A','B']
这与OP的代码有何不同?是否保证
将按插入顺序在键上迭代而
不会?是的,您是对的。无论如何,示例代码已经生成了正确的输出。正在运行版本3.7。谢谢大家的回复。是的,我在一个新窗口中重新运行了代码,并显示了正确的OP。我可能有一个以前的变量影响原始OP。这与OP的代码有什么不同?是否保证
将按插入顺序在键上迭代而
不会?是的,您是对的。无论如何,示例代码已经生成了正确的输出。正在运行版本3.7。谢谢大家的回复。是的,我在一个新窗口中重新运行了代码,并显示了正确的OP。我可能有一个先前的变量影响了最初的OP。