Skip to main content
 首页 » 编程设计

python之当存在重复项时,如何将两个元素列表转换为字典(一个元素将是键,另一个将是值)

2025年05月04日11落叶无声

因此,我按以下方式获得了列表列表。

ab_list = [['AB','35'],['AB','78'],['CD','98'],['CD','41'],['CD','67'].....] 

现在,我想将此列表转换为字典,使其具有以下形式:

ab_dict = {'AB':'35|78','CD':'98|41|67'.........} 

因此,如果列表的第二个元素重复,则应通过管道将其连接起来,这将成为值。我不明白如何做到这一点的逻辑。我正在尝试的代码是:

for val in ab_list: 
for value in final_list: 
if val[0] == value[0]: 
value[1] = value[1] + "|" + val[1] 

但这不能正常工作。如何做到这一点?

请您参考如下方法:

这是一种使用 setdefault 和简单迭代的方法。

例如:

ab_list = [['AB','35'],['AB','78'],['CD','98'],['CD','41'],['CD','67']] 
result = {} 
for k, v in ab_list: 
    result.setdefault(k, []).append(v) 
 
ab_dict = {k: "|".join(v) for k, v in result.items()} 
print(ab_dict) 

输出:

{'AB': '35|78', 'CD': '98|41|67'}