合并并删除同一密钥

2024-06-25 23:48:59 发布

您现在位置:Python中文网/ 问答频道 /正文

我有这个:

 a = [['huhu', 'dow'], ['haha', 'dow'], ['haha', 'pow'], ['haha', 'dow'],  ['haha', 'mat'], ['hihi', 'dow'], ['hihi', 'pow']]

我想要

[['huhu', 'dow'], ['haha', 'dow', 'pow', 'dow', 'mat'], ['hihi', 'dow'], ['hihi', 'pow']]


Tags: mathahapowhuhudowhihi
1条回答
网友
1楼 · 发布于 2024-06-25 23:48:59

我建议在这里用字典,它更干净。我特别推荐^{}

from collections import defaultdict
dct = defaultdict(list)

for key, *values in a:
    dct[key].extend(values)

输出:

defaultdict(list,
            {'huhu': ['dow'],
             'haha': ['dow', 'pow', 'dow', 'mat'],
             'hihi': ['dow', 'pow']})

如果你想把它列为一个列表,这是一个相当简单的理解:

[[k, *v] for k, v in dct.items()]

# [['huhu', 'dow'], ['haha', 'dow', 'pow', 'dow', 'mat'], ['hihi', 'dow', 'pow']]

相关问题 更多 >