Преобразовать список в словарь

У меня есть этот множественный список

[['1', '228', '149'], ['2', '288', '129'], ['3', '270', '133'], ['4', '256', '141'], ['5', '256', '157'], ['6', '246', '157'], ['7', '236', '169'], ['8', '228', '169'], ['9', '228', '161']

И я хочу, чтобы результат находился в словаре, чтобы я мог позже взять наклон с этими местоположениями. Пример -> {1: (x1, y1), 2: (x2, y2), ...}

{1:(228,149), 2:(228,129), 3:(270,133),....., 9:(228, 161)}
0
задан 20.09.2019, 16:39
1 ответ

Очень работоспособный способ, который я изучил благодаря этому вопросу:

Группировать список tuplas в словаре способа Гіptima в python

- с использованием defaultdict. Исходя из твоего списка:

from collections import defaultdict

lista = [['1', '228', '149'], ['2', '288', '129'], ['3', '270', '133'], ['4', '256', '141'], ['5', '256', '157'], ['6', '246', '157'], ['7', '236', '169'], ['8', '228', '169'], ['9', '228', '161']]

d = defaultdict(tuple)
for clave, e1, e2 in lista:
    d[int(clave)] = (int(e1), int(e2))

В этом случае d valdrГ, - в которое ты ждешь:

{1: (228, 149), 2: (288, 129), 3: (270, 133), 4: (256, 141), 5: (256, 157), 6: (246, 157), 7: (236, 169), 8: (228, 169), 9: (228, 161)}
0
ответ дан 22.09.2019, 11:44
  • 1
    Для этого случая ты не нуждаешься в том, чтобы использовать defaultdict, так как asignació n d[int(clave)] = loquesea creará так или иначе этот ключ, из-за того, что относится друг к другу о asignació n. defaultdict - для того, чтобы ключ tambié n он верит, когда ты попробуешь прочитать ключ, который не существует, что обычно является случаем для, когда стоимость готовая и así смоги делать diccionario[clave].append(dato), так как если ключ не existí в, обработав информацию " leerla" с diccionario[clave] creará список vací в, на которой operació n .append() уже podrá функционировать. – abulafia 21.09.2019, 14:50