gpt4 book ai didi

python - 两个字符串列表放入字典: key order changing

转载 作者:行者123 更新时间:2023-12-01 04:55:31 25 4
gpt4 key购买 nike

我找到了一种在 Python 中将两个列表转换为一个字典的方法。所以我试图从两个列表创建一个字典。以下是代码片段:

>>> v
['2', '3', '4', '1']

>>> idv = sorted(v)
>>> idv
['1', '2', '3', '4']

>>> tabv = {key:value for key, value in zip(idv, v)}
>>> tabv
{'1': '2', '3': '4', '2': '3', '4': '1'}
>>> for key,values in tabv.items():
print key,values


1 2
3 4
2 3
4 1

我不明白的是,为什么 key (List idv)的顺序会改变?当我打印键,值时我期望的是:

1 2
2 3
3 4
4 1

为什么会发生这种情况?我有什么错误吗?

最佳答案

您将需要使用 collections.OrderedDict这里:

>>> from collections import OrderedDict
>>> v = ['2', '3', '4', '1']
>>> idv = sorted(v)
>>> tabv = OrderedDict(zip(idv, v))
>>> for key, values in tabv.items():
... print key, values
...
1 2
2 3
3 4
4 1
>>>

常规字典对象自然是无序的;它们不保留您插入新项目的顺序。所以,这样做:

tabv = {key: value for key, value in zip(idv,v)}

将根据需要从两个列表创建一个字典,但项目的顺序是任意的。

关于python - 两个字符串列表放入字典: key order changing,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27496609/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com