আমারও অনুরূপ সমস্যা হয়েছিল এবং সমাধানটি এখানে পেয়েছি । এটি কোনও মডিউল আমদানি না করেই কাজ করে।
মনে হয় একটি তালিকা:
people = ["Lisa","Pam","Phil","John"]
একটি সরলিকৃত এক-লাইন সমাধান এর মতো দেখায়।
সদৃশ সহ সমস্ত সম্ভাব্য জোড়া :
result = [foo(p1, p2) for p1 in people for p2 in people]
সদৃশ ব্যতীত সমস্ত সম্ভাব্য জোড়া :
result = [foo(p1, p2) for p1 in people for p2 in people if p1 != p2]
অনন্য যুগল , যেখানে ক্রমটি অপ্রাসঙ্গিক:
result = [foo(people[p1], people[p2]) for p1 in range(len(people)) for p2 in range(p1+1,len(people))]
আপনি পরিচালনা করতে না চান তবে কেবল জোড়া পেতে, ফাংশনটি সরিয়ে fooএবং কেবল একটি টিউপল ব্যবহার করা যথেষ্ট।
সদৃশ সহ সমস্ত সম্ভাব্য জোড়া :
list_of_pairs = [(p1, p2) for p1 in people for p2 in people]
ফলাফল:
('Lisa', 'Lisa')
('Lisa', 'Pam')
('Lisa', 'Phil')
('Lisa', 'John')
('Pam', 'Lisa')
('Pam', 'Pam')
('Pam', 'Phil')
('Pam', 'John')
('Phil', 'Lisa')
('Phil', 'Pam')
('Phil', 'Phil')
('Phil', 'John')
('John', 'Lisa')
('John', 'Pam')
('John', 'Phil')
('John', 'John')
সদৃশ ব্যতীত সমস্ত সম্ভাব্য জোড়া :
list_of_pairs = [(p1, p2) for p1 in people for p2 in people if p1 != p2]
ফলাফল:
('Lisa', 'Pam')
('Lisa', 'Phil')
('Lisa', 'John')
('Pam', 'Lisa')
('Pam', 'Phil')
('Pam', 'John')
('Phil', 'Lisa')
('Phil', 'Pam')
('Phil', 'John')
('John', 'Lisa')
('John', 'Pam')
('John', 'Phil')
অনন্য যুগল , যেখানে ক্রমটি অপ্রাসঙ্গিক:
list_of_pairs = [(people[p1], people[p2]) for p1 in range(len(people)) for p2 in range(p1+1,len(people))]
ফলাফল:
('Lisa', 'Pam')
('Lisa', 'Phil')
('Lisa', 'John')
('Pam', 'Phil')
('Pam', 'John')
('Phil', 'John')
সম্পাদনা করুন: এই সমাধানটি সহজ করার জন্য পুনরায় কাজ করার পরে, আমি বুঝতে পেরেছিলাম যে এটি অ্যাডাম রোজেনফিল্ডের চেয়ে একই পদ্ধতি। আমি আশা করি বৃহত্তর ব্যাখ্যা কিছুটিকে এটি আরও ভালভাবে বুঝতে সাহায্য করে।