Từ khóa bipartite
Trong video, Eric đã giới thiệu với bạn về từ khóa 'bipartite'. Từ khóa này là một phần của từ điển metadata của node và có thể được gán cả khi bạn thêm node lẫn sau khi node đã được thêm. Tuy nhiên, hãy nhớ rằng theo định nghĩa, trong một đồ thị hai phía (bipartite), một node không thể nối với node khác nằm trong cùng một partition.
Tại đây, bạn sẽ viết một hàm trả về các node thuộc một partition cho trước trong một đồ thị hai phía. Trong trường hợp này, các partition liên quan của đồ thị hai phía Github mà bạn sẽ làm việc là 'projects' và 'users'.
Bài tập này là một phần của khóa học
Phân tích mạng nâng cao với Python
Hướng dẫn bài tập
- Viết một hàm tên
get_nodes_from_partition()nhận hai đối số — một đồ thị hai phíaGvà mộtpartitioncủaG— và trả về đúng các node thuộcpartitionđó.- Duyệt qua tất cả các node của
G(không gồm metadata) bằng vòng lặpfor. - Truy cập từ khóa
'bipartite'trong từ điển metadata của node hiện tại. Nếu nó bằngpartition, thêm node hiện tại vào danh sáchnodes.
- Duyệt qua tất cả các node của
- Dùng hàm
get_nodes_from_partition()cùng với hàmlen()để:- In số lượng node trong partition
'projects'củaG. - In số lượng node trong partition
'users'củaG.
- In số lượng node trong partition
Bài tập tương tác thực hành trực tiếp
Hãy thử làm bài tập này bằng cách hoàn thành đoạn mã mẫu này.
# Define get_nodes_from_partition()
def ____:
# Initialize an empty list for nodes to be returned
nodes = []
# Iterate over each node in the graph G
for n in ____:
# Check that the node belongs to the particular partition
if G.nodes[n]['____'] == ____:
# If so, append it to the list of nodes
____
return nodes
# Print the number of nodes in the 'projects' partition
print(____(get_nodes_from_partition(____, '____')))
# Print the number of nodes in the 'users' partition
print(____(____))