যদি তালিকা জুড়ে ডিজয়েন্ট স্ট্রিং বের করতে হয়, তবে একটি পদ্ধতি সংজ্ঞায়িত করা হয় যা দুটি প্যারামিটার নেয়, এবং lambda এবং reduce পদ্ধতি 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' নামে একটি পদ্ধতি সংজ্ঞায়িত করা হয়েছে যা দুটি প্যারামিটার নেয়।
যদি প্রথম প্যারামিটার সত্য না হয়, এবং 'reduce' এবং 'lambda' পদ্ধতি দুটি প্যারামিটার সহ সত্য না হয়, তবে yield অপারেটর ব্যবহার করে ফলাফল নির্ধারণ করা হয়, যা একটি টাপলেও রূপান্তরিত হয়।
অন্যথায়, yield অপারেটর সহ তালিকা বোঝাপড়া ব্যবহার করে পদ্ধতিটি একটি ভিন্ন সেট প্যারামিটার সহ আবার কল করা হয়।
পদ্ধতির বাইরে, দুটি স্ট্রিংয়ের তালিকা সংজ্ঞায়িত করা হয়েছে এবং কনসোলে প্রদর্শিত হয়েছে।
পদ্ধতিটি এই দুটি তালিকা পাস করে কল করা হয়েছে।
এটি একটি তালিকায় রূপান্তরিত होकर একটি ভেরিয়েবলে সংরক্ষিত হয়েছে।
এই ভেরিয়েবলটি আউটপুট হিসেবে কনসোলে প্রদর্শিত হয়।