ग्राफ़ में self-loops हैं या नहीं, यह जाँचना
जैसा कि Eric ने बताया, NetworkX उन edges की भी अनुमति देता है जो एक ही node से शुरू होकर उसी पर समाप्त होते हैं; एक सोशल नेटवर्क ग्राफ़ के लिए यह सहज नहीं लगेगा, लेकिन ट्रिप नेटवर्क जैसे डेटा को मॉडल करने में यह उपयोगी है, जिसमें व्यक्ति एक स्थान से शुरू करके दूसरे पर समाप्त करते हैं।
आगे के विश्लेषण से पहले इसे जाँचना उपयोगी होता है, और NetworkX इसके लिए एक मेथड देता है: nx.number_of_selfloops(G).
इस अभ्यास में और आगे आने वाले अभ्यासों में, आपको assert स्टेटमेंट उपयोगी लगेगा। assert यह जाँचता है कि उसके बाद दिया गया कथन True पर मूल्यांकन होता है या नहीं; अन्यथा यह AssertionError उठाएगा।
शुरू करने के लिए, IPython Shell में nx.number_of_selfloops() फंक्शन को कॉल करें, और T पास करें, ताकि ऐसे edges की संख्या मिले जो एक ही node पर शुरू और समाप्त होते हैं। ग्राफ़ में कुछ self-loops सिंथेटिक रूप से जोड़े गए हैं। आपका काम इस अभ्यास में एक ऐसा फंक्शन लिखना है जो इन edges को लौटाए।
यह अभ्यास पाठ्यक्रम का हिस्सा है
Python में नेटवर्क विश्लेषण का परिचय
अभ्यास निर्देश
find_selfloop_nodes()नाम का एक फंक्शन परिभाषित करें जो एक आर्ग्युमेंट लेता है:G.- एक
forलूप का उपयोग करके,Gकी सभी edges पर (metadata को छोड़कर) इटरेट करें। - अगर node
u, nodevके बराबर हो:uको सूचीnodes_in_selfloopsमें जोड़ें।- सूची
nodes_in_selfloopsको रिटर्न करें।
- एक
- जाँचें कि ग्राफ़ में self loops की संख्या, self loops वाले nodes की संख्या के बराबर है। यह आपके लिए कर दिया गया है, तो परिणाम देखने के लिए 'Submit Answer' दबाएँ!
इंटरैक्टिव व्यावहारिक अभ्यास
इस अभ्यास को इस नमूना कोड को पूरा करके आज़माएँ।
# Define find_selfloop_nodes()
def ____:
"""
Finds all nodes that have self-loops in the graph G.
"""
nodes_in_selfloops = []
# Iterate over all the edges of G
for u, v in ____:
# Check if node u and node v are the same
if ____:
# Append node u to nodes_in_selfloops
____
return nodes_in_selfloops
# Check whether number of self loops equals the number of nodes in self loops
assert nx.number_of_selfloops(T) == len(find_selfloop_nodes(T))