gpt4 book ai didi

python - 从python字典中删除重复键但连接重复键的值

转载 作者:太空宇宙 更新时间:2023-11-04 02:09:36 25 4
gpt4 key购买 nike

假设我有两个列表:

lista = ['winter', 'fall', 'spring', 'summer', 'winter', 'spring']
listb = ['cold', 'rainy', 'windy', 'hot', 'chilly', 'wet']

我想创建一个字典,从 lista 中提取唯一值作为键(它会自动执行,因为字典只能有唯一键)和列表 b 中的值作为字典值,按顺序对应于 lista .所以要创建我会做的字典:

mydict = {k: v for k, v in zip(lista, listb)}

如果我打印这个,我得到:

{'winter': 'chilly', 'fall': 'rainy', 'spring': 'wet', 'summer': 'hot'}

但是,我想做的是,对于 lista 中重复的每个“键”,我想将 listb 中的值连接起来作为字典中的“值”列表。所以目标是:

{'winter': ['cold', 'chilly'], 'fall': ['rainy'], 'spring': ['windy', 'wet'], 'summer': ['hot']}

这是我正在尝试做的事情的简化版本,但我认为它适用 - 我正在读取一个 csv 文件并尝试将“姓氏”列设为键,每隔一行设为值(作为列表)。到目前为止,我已经为姓氏创建了一个列表,并为其他行创建了一个列表,但我需要连接重复名称的值。

最佳答案

不需要用空列表显式初始化值,使用 defaultdict :

from collections import defaultdict

lista = ['winter', 'fall', 'spring', 'summer', 'winter', 'spring']
listb = ['cold', 'rainy', 'windy', 'hot', 'chilly', 'wet']

d = defaultdict(list)
for x, y in zip(lista, listb):
d[x].append(y)

print(dict(d))

请注意,没有必要像我那样强制转换为 dict,因为 defaultdictdict 的子类。我这样做是为了让输出完全符合您的要求。

结果:

{'winter': ['cold', 'chilly'], 'fall': ['rainy'], 'spring': ['windy', 'wet'], 'summer': ['hot']}

关于python - 从python字典中删除重复键但连接重复键的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53936733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com