У меня есть список:
lst = [('a', 1), ('b', 2), ('c', 3), ('a', 4), ('c', 5)]
, и я хочу сгруппировать по первому элементу кортежа и добавить второй элемент:
group = {'a': [1, 4], 'b': [2], 'c': [3, 5]}
Итак, мой код выглядит следующим образом :
group = dict()
for e1, e2 in lst:
if e1 in group:
group[e1].append(e2)
else:
group[e1] = [e2]
Что мне не нравится в этом коде, так это то, что я дважды ищу ключ в словаре группы, один для команды e1 in group
и два для команды group[e1] = ...
Есть ли лучший способ сохранить «указатель», если ключ найден, и не нужно искать второй раз, чтобы установить значение этого ключа?
Кроме того, если есть гораздо лучший Решение с использованием библиотеки, пожалуйста, дайте мне знать.