преобразование списка в словарь с несколькими значениями для каждого ключа?

У меня есть Список Python, содержащий пары ключ / значение:

l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]

Я хочу преобразовать список в словарь, где несколько значений для каждого ключа будут объединены в кортеж:

{ 1:('A', 'B'), 2:('C',) }

Итеративное решение тривиально:

l=[ [1, 'A'], [1, 'B'], [2, 'C'] ]
d={}
for pair in l:
    if d.has_key(pair[0]):
        d[pair[0]]=d[pair[0]]+tuple(pair[1])
    else:
        d[pair[0]]=tuple(pair[1])

print d

{1: ('A', 'B'), 2: ('C',)}

Есть ли более элегантное решение Pythonic для этой задачи?

52
задан martineau 13 February 2017 в 05:23
поделиться