দুটি স্ট্রিং লিস্ট দেওয়া থাকলে, যেসব স্ট্রিং দুটি লিস্টেও সাবস্ট্রিং হিসেবে আছে সেগুলো খুঁজে বের করতে সেট অপারেশন এবং লিস্ট কমপ্রিহেনশন ব্যবহার করা হয়।
উদাহরণ কোড
my_list_1 = ["Hi", "there", "how", "are", "you"]
my_list_2 = ["Hi", "there", "how", "have", "you", 'been']
print("The first list is:")
print(my_list_1)
print("The second list is:")
print(my_list_2)
# লিস্ট কমপ্রিহেনশন + set দিয়ে ইউনিক সাবস্ট্রিং বের করা
my_result = list(set([
elem_1 for subset_1 in my_list_1
for elem_1 in my_list_2
if elem_1 in subset_1
]))
print("The result is:")
print(my_result)
আউটপুট
The first list is: ['Hi', 'there', 'how', 'are', 'you'] The second list is: ['Hi', 'there', 'how', 'have', 'you', 'been'] The result is: ['there', 'you', 'Hi', 'how']
ব্যাখ্যা
- নেস্টেড লুপ:
my_list_1-এর প্রতিটি স্ট্রিং (subset_1) এর সাথেmy_list_2-এর প্রতিটি স্ট্রিং (elem_1) চেক করা হয়। if elem_1 in subset_1—elem_1কিsubset_1-এর সাবস্ট্রিং? (এখানে পুরো স্ট্রিং ম্যাচ হচ্ছে কারণ উভয় লিস্টে আলাদা আলাদা ওয়ার্ড।)set(...)— ডুপ্লিকেট সরিয়ে ইউনিক মান রাখে।list(...)— সেটকে আবার লিস্টে রূপান্তর।
সতর্কতা
এই লজিক সাবস্ট্রিং ম্যাচ করে (যেমন "cat" আন্ডারে "category" ম্যাচ করবে)। যদি শুধু এক্সাক্ট ওয়ার্ড ম্যাচ চান, তবে set(my_list_1) & set(my_list_2) ব্যবহার করুন।