Объединить и удалить тот же ключ Python - PullRequest
0 голосов
/ 12 июня 2018

У меня есть это:

 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 ']]

1 Ответ

0 голосов
/ 12 июня 2018

Я бы порекомендовал использовать здесь словарь, он намного чище.В частности, я бы порекомендовал collections.defaultdict:

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']]
...