1. 학습
  2. /
  3. 강의
  4. /
  5. Wprowadzenie do analizy sieci w Pythonie

Connected

연습 문제

Sprawdzanie, czy graf zawiera pętle własne

Jak omówił Eric, NetworkX umożliwia tworzenie krawędzi, które zaczynają się i kończą w tym samym węźle. W kontekście sieci społecznościowej brzmi to mało intuicyjnie, ale jest przydatne do modelowania takich danych jak sieci podróży – gdzie dana osoba wyrusza z jednego miejsca i kończy trasę w innym.

Warto sprawdzić obecność takich krawędzi przed przystąpieniem do dalszych analiz. NetworkX udostępnia do tego celu metodę: nx.number_of_selfloops(G).

W tym ćwiczeniu – podobnie jak w kolejnych – przyda ci się instrukcja assert. Sprawdza ona, czy wyrażenie umieszczone po niej zwraca wartość True; w przeciwnym razie zgłaszany jest błąd AssertionError.

Na początek wywołaj funkcję nx.number_of_selfloops(), przekazując jako argument T w powłoce IPython, aby sprawdzić liczbę krawędzi zaczynających się i kończących w tym samym węźle. Do grafu dodano syntetycznie pewną liczbę pętli własnych. Twoim zadaniem jest napisanie funkcji, która zwróci te krawędzie.

지침

100 XP
  • Zdefiniuj funkcję o nazwie find_selfloop_nodes(), przyjmującą jeden argument: G.
    • Używając pętli for, iteruj po wszystkich krawędziach w G (bez metadanych).
    • Jeśli węzeł u jest równy węzłowi v:
      • Dodaj u do listy nodes_in_selfloops.
      • Zwróć listę nodes_in_selfloops.
  • Sprawdź, czy liczba pętli własnych w grafie jest równa liczbie węzłów w pętlach własnych. Ten krok jest już gotowy – kliknij Prześlij odpowiedź, aby zobaczyć wynik!