我找到了一种在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
我不明白的是,为什么键(List idv)的顺序会改变?
当我print key,values
时,我所期望的是:
1 2
2 3
3 4
4 1
为什么会这样?我做错什么了吗?你知道吗
您需要在此处使用^{} :
常规dictionary对象自然是无序的;它们不保留插入新项的顺序。所以,做:
将根据您想要的两个列表创建一个字典,但是项目的顺序将是任意的。你知道吗
如果需要使用有序词典,可以使用OrderedDict:
规则的
dict
是无序的。你知道吗dict
类型是无序映射。你知道吗如果需要有序映射,请使用^{} 。你知道吗
相关问题 更多 >
编程相关推荐