কম্পিউটার টিউটোরিয়াল

Python-এ দুটি স্ট্রিং লিস্টের সাবস্ট্রিং ম্যাচ খুঁজে বের করা

দুটি স্ট্রিং লিস্ট দেওয়া থাকলে, যেসব স্ট্রিং দুটি লিস্টেও সাবস্ট্রিং হিসেবে আছে সেগুলো খুঁজে বের করতে সেট অপারেশন এবং লিস্ট কমপ্রিহেনশন ব্যবহার করা হয়।

উদাহরণ কোড

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) ব্যবহার করুন।

  1. পাইথনে অ্যারের সব ভালো ইনডেক্স খুঁজে বের করা

  2. পাইথন - তালিকার সব মান একটি দেওয়া মানের চেয়ে ছোট কিনা যাচাই করা

  3. পাইথনে চেক করা: লিস্টের সব মান কি একটি দिये गये ভ্যালুর চেয়ে বড়?

  4. পাইথন প্রোগ্রাম: লিস্টের সব মান দেওয়া মান থেকে বড় কিনা চেক করা