嗨,我有两个清单,
list1
['PO', 'NA', 'PO']
list2
['Post Office', 'Not Available', 'Post area']
我正在尝试使用我尝试过的这两个列表来获取字典,my_dict=dict(zip(list1,list2))
它给出了,
{'NA': 'Not Available', 'PO': 'Post area'}
但我的预期输出是,
{'NA': 'Not Available', 'PO': ['Post area','Post Office']}
请帮忙
有两种方法:
使用 defaultdict 的第一种方法:
from collections import defaultdict
list1=['PO', 'NA', 'PO']
list2=['Post Office', 'Not Available', 'Post area']
final_dict = defaultdict(list)
[final_dict[item[0]].append(item[1]) for item in zip(list1,list2)]
print(final_dict)
输出:
defaultdict(<class 'list'>, {'PO': ['Post Office', 'Post area'], 'NA': ['Not Available']})
第二种方法:
让我们分两步解决您的问题:
首先压缩两个列表:
list1=['PO', 'NA', 'PO']
list2=['Post Office', 'Not Available', 'Post area']
zip_list=[item for item in zip(list1,list2)]
现在检查 zip tuple 第一个元素是否在 dict 中,然后使用这个很棒的模式:
final_dict={}
for item in zip_list:
if item[0] not in final_dict:
final_dict[item[0]]=[item[1]]
else:
final_dict[item[0]].append(item[1])
完整代码:
list1=['PO', 'NA', 'PO']
list2=['Post Office', 'Not Available', 'Post area']
zip_list=[item for item in zip(list1,list2)]
final_dict={}
for item in zip_list:
if item[0] not in final_dict:
final_dict[item[0]]=[item[1]]
else:
final_dict[item[0]].append(item[1])
print(final_dict)
输出:
{'NA': ['Not Available'], 'PO': ['Post Office', 'Post area']}
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句