Я новичок в Python, и сейчас я борюсь с одной проблемой. У меня есть список списков:
[[0,1], [1,2,8], [3,4], [4,2], [2,5], [5,6,7], [8,9,10,11,12]]
Моя цель - сделать из него словарь следующего формата:
{0:[1],1:[2,8],2:[8,1,4,5],3:[4],5:[6,7,2],6:[5,7],7:[5,6],8:[1,2,10,9,11,12],9:[8,10,11,12],10:[8,9,11,12],11:[12,10,9,8],12:[11,9,10,8]}
.
Короче говоря:
Он должен создать словарь с уникальными ключами от 1 до 12 в этом случае (все уникальные числа в списке), и каждому ключу он назначает список значений, который является общим подмножеством для этого ключа, то есть для ключа 2
он появляется в списках [4,2], [2,5], [1,2,8]
, поэтому ему необходимо присвоить ключу 2
значение, которое представляет собой список чисел в этих 3 списках, кроме 2.
Таким образом, вывод для ключа 2
должен быть: 2:[8,1,4,5]
и т. Д.
Я сделал код:
data = [[0,1], [1,2,8], [3,4], [4,2], [2,5], [5,6,7], [8,9,10,11,12]]
graph = {}
for i in range(13):
graph[i] = 3
numbers = list(range(0,13))
for row in data:
for i in graph.keys():
if i in row:
graph[i] = row
for key,value in graph.items():
graph[key] = graph[key][1:]
print(graph)
Тем не менее, это дает мне вывод:
{0: [1], 1: [2, 8], 2: [5], 3: [4], 4: [2], 5: [6, 7], 6: [6, 7], 7: [6, 7], 8: [9, 10, 11, 12], 9: [9, 10, 11, 12], 10: [9, 10, 11, 12], 11: [9, 10, 11, 12], 12: [9, 10, 11, 12]}
Я действительно не знаю, как объединить эти списки таким образом, чтобы получить желаемый результат.