Как я могу преобразовать список списков в словарь, ключи которого являются целыми числами, а значения являются индексом подсписка, которому принадлежит целое число? - PullRequest
0 голосов
/ 10 октября 2019

У меня есть список списков, где каждое целое число 0..N принадлежит ровно одному списку во внешнем списке. Так, например, если N = 6, у меня есть что-то вроде

L=[[0,4,5],[2,3],[1,6]]

Я хочу, чтобы словарь выглядел следующим образом:

{0:0, 1:2, 2:1, 3:1, 4:0, 5:0}

Например, пара ключ: значение 2: 1 указывает, что 2 принадлежит L [1].

Есть ли простой способ сделать это?

Ответы [ 2 ]

1 голос
/ 10 октября 2019
L=[[0,4,5],[2,3],[1,6]]

result = dict()
for i,l  in enumerate(L):
  for item in l:
    result[item]=i

print(result)

Это приведет к выводу типа:

{0: 0, 1: 2, 2: 1, 3: 1, 4: 0, 5: 0, 6: 2}
1 голос
/ 10 октября 2019

Вы можете использовать перечисление + словарь для понимания :

L = [[0, 4, 5], [2, 3], [1, 6]]
result = {value: i for i, values in enumerate(L) for value in values}
print(result)

Вывод

{0: 0, 4: 0, 5: 0, 2: 1, 3: 1, 1: 2, 6: 2}

Какойэквивалентно:

result = {}
for i, values in enumerate(L):
    for value in values:
        result[value] = i

Ключом здесь, на мой взгляд, является использование перечисления для доступа к индексам и элементам L.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...