Задание весов рёбер
Рёбрам графа можно назначать веса — как правило, они отражают «силу» связи между узлами. В NetworkX вес задаётся через ключ 'weight' в словаре метаданных.
Прежде чем приступить к упражнению, воспользуйтесь оболочкой IPython, чтобы изучить метаданные словаря T: например, выполните команды T.edges[1, 10] и T.edges[10, 1]. Обратите внимание, что в словаре пока только одно поле — в этом упражнении вы добавите ещё одно, с именем 'weight'.
Это упражнение является частью курса
Введение в анализ сетей на Python
Инструкции к упражнению
- Установите атрибут
'weight'для ребра между узлами1и10графаTравным2. Используйте следующий шаблон для задания атрибута ребра:network_name.edges[node1, node2]['attribute'] = value. В данном случае'attribute'— это'weight'. - Установите вес каждого ребра, в котором участвует узел
293, равным1.1. Для этого:- С помощью цикла
forвыполните итерацию по всем рёбрамT, включаяmetadata. - Если узел
293входит в список узлов[u, v]:- Установите вес ребра между
uиvравным1.1.
- Установите вес ребра между
- С помощью цикла
Интерактивное практическое упражнение
Попробуйте выполнить это упражнение, дополнив этот пример кода.
# Set the weight of the edge
____ = 2
# Iterate over all the edges (with metadata)
for u, v, d in ____:
# Check if node 293 is involved
if 293 in ____:
# Set the weight to 1.1
____ = 1.1