Я хотел бы взять список, подобный этому: ['5', '0 1', '1 2', '1 8', '2 3'] и вернуть новый список, составленный из кортежей, например: [ (0, [1]), (1, [0,2,8]), (2 [1,3]), (3, [2]), (8, [1])]. Первый элемент каждого кортежа представляет собой целое число, а второй элемент представляет собой список целых чисел, рядом с которым он отображается в исходном списке. Я не могу использовать словари, наборы, deque, модуль bisect.
def create_network(file_name):
friends = open(file_name).read().splitlines()
network=[]
for strings in friends:
relationship=strings.strip().split(' ')
if len(relationship)==2:
a,b=relationship
a=int(a)
b=int(b)
if a>=len(network):
network.append((a,[b]))
else:
wow=network[a]
wow[1].append(b)
network[a]=wow
return network
Это то, что я имею до сих пор. Я хочу это вернуть:
[(0, [1, 2, 3]), (1, [0, 4, 6, 7, 9]), (2, [0, 3, 6, 8, 9]), (3, [0 , 2, 8, 9]), (4, [1, 6, 7, 8]), (5, [9]), (6, [1, 2, 4, 8])), (7, [1 , 4, 8]), (8, [2, 3, 4, 6, 7]), (9, [1, 2, 3, 5])], но возвращается
[(0, [1, 2, 3]), (1, [4, 6, 7, 9]), (2, [3, 6, 8, 9]), (3, [8, 9]) , (4, [6, 7, 8]), (5, [9]), (6, [8]), (7, [8])]. Я не знаю, почему это не работает.