Обчисліть кількість сусідів для кожного вузла
Як оцінити, чи є вузол важливим? Є кілька підходів. Тут розглянемо один показник: кількість сусідів, які має вузол.
Кожен граф NetworkX G має метод .neighbors(n), що повертає ітератор вузлів — сусідів вузла n. Спочатку скористайтеся цим методом в IPython Shell на твіттер-мережі T, щоб отримати сусідів вузла 1. Це допоможе вам розібратися, як працює функція. Далі у цій вправі вам потрібно написати функцію, яка повертає всі вузли, що мають m сусідів.
Ця вправа є частиною курсу
Вступ до аналізу мереж у Python
Інструкції до вправи
- Напишіть функцію
nodes_with_m_nbrs(), яка має два параметри —Gіm— та повертає всі вузли, що маютьmсусідів. Для цього:- Ітеруйтеся всіма вузлами в
G(не включаючи метадані). - Використайте функції
len()іlist()разом із методом.neighbors(), щоб обчислити загальну кількість сусідів, які має вузолnу графіG.- Якщо кількість сусідів вузла
nдорівнюєm, додайтеnдо множиниnodes, використовуючи метод.add().
- Якщо кількість сусідів вузла
- Після проходження всіх вузлів у
Gповерніть множинуnodes.
- Ітеруйтеся всіма вузлами в
- Скористайтеся своєю функцією
nodes_with_m_nbrs(), щоб отримати всі вузли, які мають 6 сусідів у графіT.
Інтерактивна практична вправа
Спробуйте виконати цю вправу, доповнивши цей зразок коду.
# Define nodes_with_m_nbrs()
def ____:
"""
Returns all nodes in graph G that have m neighbors.
"""
nodes = set()
# Iterate over all nodes in G
for n in ____:
# Check if the number of neighbors of n matches m
if ____ == ____:
# Add the node n to the set
____
# Return the nodes with m neighbors
return nodes
# Compute and print all nodes in T that have 6 neighbors
six_nbrs = ____
print(____)