Как выбрать некоторые элементы, имеющие одинаковое значение в 0-й позиции из списка 2D в Python - PullRequest
0 голосов
/ 03 сентября 2018

Я хочу отдельно сохранить список смежности для всех узлов графа. Как я могу это сделать? Например, если есть 7 вершин, я хочу 7 списков, содержащих дуги, исходящие из ecah и каждого узла.

1 Ответ

0 голосов
/ 03 сентября 2018

Должен ли это быть список? Почему бы вам не использовать numpy для создания матрицы смежности .

Если вы хотите использовать списки, вы должны сначала знать, что нет такой вещи как 2D-список в Python. Самое близкое, что вы можете получить, это поместить 7 списков в другой список, как этот:

list1 = [1, 0, 0, 0, 1, 0, 0]  # represents the edges connecting node 1 to the rest
list2 = [0, 1, 0, 1, 0, 0, 1]  # same thing for node 2
list3 = [0, 0, 1, 0, 1, 1, 0]  # node 3
# and so on until we have 1 list for each node

adjacency_list = [list1, list2, list3, list4, list5, list6, list7]  # each element is a list

# To see if there is an edge between node 2 and node 3:
print(adjacency_list[2][3])  # 3rd element of the 2nd list 
# in this case it will return 0

Если график не направлен, вы можете использовать индексы внутреннего и внешнего списков взаимозаменяемо.

...