जब सूचियों में अलग-अलग तारों को खोजने की आवश्यकता होती है, तो एक विधि परिभाषित की जाती है जो दो पैरामीटर लेती है, और परिणाम निर्धारित करने के लिए लैम्ब्डा का उपयोग करती है और 'if' शर्त के साथ विधियों को कम करती है।
नीचे उसी का एक प्रदर्शन है -
उदाहरण
from functools import reduce def determine_disjoint_pairs(disjoint_data, my_result=[]): if not disjoint_data and not reduce(lambda a, b: set(a) & set(b), my_result): yield tuple(my_result) elif disjoint_data: yield [idx for k in disjoint_data[0] for idx in determine_disjoint_pairs(disjoint_data[1:], my_result + [k])] my_list_1 = ["python", "is", "fun"] my_list_2 = ["its", "awesome", "learning"] print("The first list is : ") print(my_list_1) print("The second list is :") print(my_list_2) my_result = list(determine_disjoint_pairs([my_list_1, my_list_2])) print("The result is :") print(my_result)
आउटपुट
The first list is : ['python', 'is', 'fun'] The second list is : ['its', 'awesome', 'learning'] The result is : [('fun', 'its'), ('fun', 'awesome')]
स्पष्टीकरण
-
'determine_disjoint_pairs' नाम की एक विधि परिभाषित की गई है जो दो पैरामीटर लेती है।
-
यदि पहला पैरामीटर सत्य नहीं है, और दो मापदंडों के साथ उपयोग की जाने वाली 'कम करें' और 'लैम्ब्डा' विधियाँ सत्य नहीं हैं, तो परिणाम निर्धारित करने के लिए यील्ड ऑपरेटर का उपयोग किया जाता है, जिसे टपल में भी बदल दिया जाता है।
-
अन्यथा, सूची समझ के साथ उपज ऑपरेटर का उपयोग विधि को फिर से पैरामीटर के एक अलग सेट के साथ कॉल करके किया जाता है।
-
विधि के बाहर, स्ट्रिंग की दो सूचियों को परिभाषित किया जाता है और कंसोल पर प्रदर्शित किया जाता है।
-
इन दो सूचियों को पास करके विधि कहा जाता है।
-
इसे एक सूची में बदल दिया जाता है और एक चर को सौंपा जाता है।
-
यह चर कंसोल पर आउटपुट के रूप में प्रदर्शित होता है।