Задавання ваг на ребрах
Ваги можна додавати до ребер у графі — зазвичай вони позначають «силу» ребра. У NetworkX вага задається ключем 'weight' у словнику метаданих.
Перш ніж виконувати вправу, скористайтеся IPython Shell, щоб отримати доступ до словника метаданих 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