1. 학습
  2. /
  3. 강의
  4. /
  5. Python으로 시작하는 네트워크 분석

Connected

연습 문제

그래프에 자기 루프가 있는지 확인하기

Eric이 설명했듯이, NetworkX는 같은 노드에서 시작해 같은 노드로 끝나는 간선을 허용해요. 사회 연결망 그래프에서는 직관적이지 않을 수 있지만, 출발지와 도착지가 있는 여행(trip) 네트워크처럼 한 위치에서 출발해 다른 위치로 끝나는 데이터를 모델링할 때 유용해요.

추가 분석에 앞서 이를 확인해 두는 것이 유익하며, NetworkX는 이를 위한 메서드 nx.number_of_selfloops(G)를 제공해요.

이번 연습 문제와 이후 문제들에서 assert 문이 유용해요. assert는 뒤에 오는 표현식이 True인지 확인하며, 그렇지 않으면 AssertionError를 발생시켜요.

먼저 IPython Shell에서 nx.number_of_selfloops() 함수에 T를 전달해, 같은 노드에서 시작해 같은 노드로 끝나는 간선의 개수를 확인해 보세요. 그래프에는 여러 자기 루프가 인위적으로 추가되어 있어요. 이번 연습 문제에서 여러분의 과제는 이러한 간선을 찾아 반환하는 함수를 작성하는 거예요.

지침

100 XP
  • find_selfloop_nodes()라는 함수를 정의하고, 인수로 G를 하나 받으세요.
    • for 루프를 사용해 G의 모든 간선(메타데이터 제외)을 순회하세요.
    • 노드 u가 노드 v와 같다면:
      • 리스트 nodes_in_selfloops에 u를 추가하세요.
      • 리스트 nodes_in_selfloops를 반환하세요.
  • 그래프의 자기 루프 개수가 자기 루프에 속한 노드의 수와 같은지 확인하세요. 이 부분은 이미 준비되어 있으니, 'Submit Answer'를 눌러 결과를 확인하세요!