Создать словарь с уникальными ключами и различными значениями списка из кортежаPython

Программы на Python
Ответить
Anonymous
 Создать словарь с уникальными ключами и различными значениями списка из кортежа

Сообщение Anonymous »

У меня есть список таких кортежей:

Код: Выделить всё

[('id1', 'text1', 0, 'info1'),
('id2', 'text2', 1, 'info2'),
('id3', 'text3', 1, 'info3'),
('id1', 'text4', 0, 'info4'),
('id4', 'text5', 1, 'info5'),
('id3', 'text6', 0, 'info6')]
Я хочу преобразовать его в dict, сохранив идентификаторы в качестве ключей, а все остальные значения в виде списков кортежей, расширяя те, которые уже существуют:

Код: Выделить всё

{'id1': [('text1', 0, 'info1'),
('text4', 0, 'info4')],
'id2': [('text2', 1, 'info2')],
'id3': [('text3', 1, 'info3'),
('text6', 0, 'info6')],
'id4': [('text5', 1, 'info5')]}
Сейчас я использую довольно простой код:

Код: Выделить всё

for x in list:
if x[0] not in list: list[x[0]] = [(x[1], x[2], x[3])]
else: list[x[0]].append((x[1], x[2], x[3]))
Я считаю, что должен быть более элегантный способ добиться того же результата, возможно, с помощью генераторов. Есть идеи?

Подробнее здесь: https://stackoverflow.com/questions/314 ... om-a-tuple
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»