Mat*_*ost 0 python dictionary join list
我有两个清单:
list1 = ['r', '8', 'w', 'm', 'f', 'c', 'd',...]
list2 = ['AA', 'AB', 'AC', 'AD', 'AE', 'AF',...]
Run Code Online (Sandbox Code Playgroud)
我希望将它们都放入字典中,以便:
{'r':'AA', '8':'AB', 'w':'AC', 'm':'AD',...}
Run Code Online (Sandbox Code Playgroud)
我尝试过使用:
dictionary = dict(zip(list1, list2))
Run Code Online (Sandbox Code Playgroud)
但是,我相信这个函数会做一些奇怪的排序,因为如果我打印"dictionary",我会得到以下输出:
{'1': 'BE', '0': 'EB', '3': 'CE', '2': 'FE', '5': 'DB',...}
Run Code Online (Sandbox Code Playgroud)
为什么会这样,以及如何产生所需的输出?
字典是无序的数据结构.您的一对列表中的项目仍将正确配对,但订购将丢失.
如果您需要在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')])
Run Code Online (Sandbox Code Playgroud)