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

Say*_*osh 1 python dictionary list

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

ab_list = [['AB','35'],['AB','78'],['CD','98'],['CD','41'],['CD','67'].....]
Run Code Online (Sandbox Code Playgroud)

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

ab_dict = {'AB':'35|78','CD':'98|41|67'.........}
Run Code Online (Sandbox Code Playgroud)

因此,如果重复列表的第二个元素,则应通过管道将其连接,这将成为值。我不知道该怎么做的逻辑。我正在尝试的代码是:

for val in ab_list:
for value in final_list:
if val[0] == value[0]:
value[1] = value[1] + "|" + val[1]
Run Code Online (Sandbox Code Playgroud)

但这不能正常工作。这该怎么做?

Rak*_*esh 6

这是一种使用方法,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)
Run Code Online (Sandbox Code Playgroud)

输出:

{'AB': '35|78', 'CD': '98|41|67'}
Run Code Online (Sandbox Code Playgroud)