Преобразование списка кортежей разных размеров в словарь - PullRequest
4 голосов
/ 08 декабря 2011

У меня есть список кортежей, и я хочу превратить этот список в словарь.Тем не менее, кортежи могут быть больше 2 и не одинакового размера.Я хотел бы, чтобы первый элемент каждого кортежа был ключом, а остальные - как массив для значения.

l = [(1,'a','b'),(2,'c'),(3,'d','e','f')]

Простое выполнение d=dict(l) не работает (на самом деле не ожидал).Я хотел бы использовать понимание списка вдоль строк d = dict([(k,v) for k,v in arr]), но с учетом v произвольного размера.

Ответы [ 2 ]

8 голосов
/ 08 декабря 2011
d = dict( (v[0], v[1:]) for v in arr )
7 голосов
/ 08 декабря 2011

У Уинстона Эверта есть лучший (самый портативный) ответ. В качестве альтернативы - если у вас последняя версия Python - вы можете использовать словарные выражения:

d = { t[0]:t[1:] for t in arr }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...