1. Learn
  2. /
  3. Courses
  4. /
  5. Nhập môn Phân tích Mạng bằng Python

Connected

Exercise

Kiểm tra xem đồ thị có self-loop hay không

Như Eric đã thảo luận, NetworkX cũng cho phép các cạnh bắt đầu và kết thúc tại cùng một nút; điều này có thể không trực quan với đồ thị mạng xã hội, nhưng lại hữu ích khi mô hình hóa dữ liệu như mạng chuyến đi, nơi cá nhân xuất phát từ một vị trí và kết thúc ở vị trí khác.

Việc kiểm tra điều này trước khi phân tích sâu hơn là hữu ích, và NetworkX cung cấp một phương thức cho mục đích đó: nx.number_of_selfloops(G).

Trong bài này và các bài sau, bạn sẽ thấy câu lệnh assert rất hữu ích. Một assert sẽ kiểm tra xem biểu thức phía sau có đánh giá là True hay không; nếu không, nó sẽ ném ra một AssertionError.

Để bắt đầu, hãy gọi hàm nx.number_of_selfloops() với đối số là T trong IPython Shell để lấy số cạnh bắt đầu và kết thúc ở cùng một nút. Một số self-loop đã được thêm vào đồ thị một cách tổng hợp. Nhiệm vụ của bạn trong bài này là viết một hàm trả về các cạnh này.

Instructions

100 XP
  • Định nghĩa một hàm tên find_selfloop_nodes() nhận một đối số: G.
    • Dùng vòng lặp for để lặp qua tất cả các cạnh trong G (không bao gồm metadata).
    • Nếu nút u bằng nút v:
      • Thêm u vào danh sách nodes_in_selfloops.
      • Trả về danh sách nodes_in_selfloops.
  • Kiểm tra rằng số self-loop trong đồ thị bằng với số nút nằm trong self-loop. Phần này đã được làm sẵn, nên hãy bấm "Gửi câu trả lời" để xem kết quả!