当一个键在 python 中应该有两个值时,创建一个包含两个列表的字典

钱德鲁

嗨,我有两个清单,

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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

当两个键的值相同时,从python字典中删除一个项目

如何在python中的字典中具有两个键和一个值

比较两个字典的键,并创建一个包含键,值对的字典,该值对与另一个字典中的键不匹配-Python

用两个键对Python列表进行排序,但只有一个键相反

从两个基于键的字典中拉取,有时python 2.7中的键不在一个字典中

Python-如何使用具有一个键和两个值的循环更新字典?

python-在具有两个条件的另一个文件中查找字典键

从python中的一个列表创建两个列表?

在两个字典中循环以在python中创建一个新字典

python - 如何将列中的字典分成两个单独的列,其中一个是键列表,另一个是值列表

合并两个(或多个)相同的字典,它们只有一个共同的值-在Python中

Python - 在有序列表中的两个元素之间创建一个新的子列表

Python:在一个文件行中检索两个单独的列表值

为什么 Python .append() 附加两个值,而不是列表中的一个?

如何比较两个字典值列表,并在 Python3 中更改另一个列表值时更新列表值?

根据唯一值python将一个列表分为两个列表

我有一个包含两个部分的文本文件。我想将两部分分成两个列表。(python帮助)

将两个列表合并成一个字典Python

在python中一次迭代一个列表的两个值

Python:获取两个列表并通过合并它们来创建一个新列表

根据python中一个列表的值对两个嵌套列表进行排序

创建一个python列表,其中一个指针指向两个地方

在遍历另一个列表时比较两个列表-Python

我的python列表的两个部分在只有一个应该更改时发生了变化

Python:比较两个成对的列表,并根据成员资格和值创建一个新列表

如何基于另一个值在python字典中添加(求和)这两个值?

根据要比较的两个字典之一的键制作一个新字典,Python

如何编写一个带有两个参数的python函数,一个是列表

Python:合并两个字典列表,其中一个字典有一个唯一的列