我有两个清单:
list1 = ['r', '8', 'w', 'm', 'f', 'c', 'd',...] list2 = ['AA', 'AB', 'AC', 'AD', 'AE', 'AF',...]
我希望将它们都放入字典中,以便:
{'r':'AA', '8':'AB', 'w':'AC', 'm':'AD',...}
我尝试过使用:
dictionary = dict(zip(list1, list2))
但是,我相信这个函数会做一些奇怪的排序,因为如果我打印"dictionary",我会得到以下输出:
{'1': 'BE', '0': 'EB', '3': 'CE', '2': 'FE', '5': 'DB',...}
为什么会这样,以及如何产生所需的输出?
字典是无序的数据结构.您的一对列表中的项目仍将正确配对,但订购将丢失.
如果您需要在dict中保留列表的顺序,则可以使用OrderedDict
.请注意,OrderedDict
它不像常规那样高效dict
,所以除非您确实需要订购,否则不要使用它们.
>>> from collections import OrderedDict >>> list1 = ['r', '8', 'w', 'm', 'f', 'c', 'd'] >>> list2 = ['AA', 'AB', 'AC', 'AD', 'AE', 'AF'] >>> OrderedDict(zip(list1, list2)) OrderedDict([('r', 'AA'), ('8', 'AB'), ('w', 'AC'), ('m', 'AD'), ('f', 'AE'), ('c', 'AF')])