У меня есть список 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 для этой задачи?