1. Učit se
  2. /
  3. Kurzy
  4. /
  5. Úvod do analýzy sítí v Pythonu

Connected

cvičení

Kontrola smyček na stejném uzlu (self-loops) v grafu

Jak Eric zmínil, NetworkX umožňuje také hrany, které začínají i končí na stejném uzlu. Pro graf sociální sítě by to bylo neintuitivní, ale hodí se například pro modelování sítí cest, kde osoba začíná i končí na stejném místě.

Před další analýzou je užitečné tuto vlastnost ověřit. NetworkX za tím účelem nabízí metodu nx.number_of_selfloops(G).

V tomto cvičení i v dalších ti přijde vhod příkaz assert. Výraz assert zkontroluje, zda je podmínka za ním vyhodnocena jako True — pokud ne, vyvolá AssertionError.

Nejdřív zavolej funkci nx.number_of_selfloops() s argumentem T v IPython Shellu, abys zjistil/a počet hran, které začínají i končí na stejném uzlu. Do grafu bylo uměle přidáno několik takových smyček. Tvým úkolem je napsat funkci, která tyto hrany vrátí.

Pokyny

100 XP
  • Definuj funkci find_selfloop_nodes(), která přijímá jeden argument: G.
    • Pomocí smyčky for iteruj přes všechny hrany v G (bez metadat).
    • Pokud se uzel u rovná uzlu v:
      • Přidej u do seznamu nodes_in_selfloops.
      • Vrať seznam nodes_in_selfloops.
  • Ověř, že počet smyček v grafu odpovídá počtu uzlů v těchto smyčkách. Tato část je už hotová — stačí kliknout na Submit Answer a podívat se na výsledek!