নেস্টেড লিস্ট (ম্যাট্রিক্স) থেকে যেসব সারিতে নির্দিষ্ট স্ট্রিং K থাকে, সেসব সারির ইন্ডেক্স বের করার জন্য enumerate() এবং লুপ ব্যবহার করা হয়।
উদাহরণ
my_list = [
["Pyt", "fun", "python"],
["python", "rock"],
["Pyt", "for", "CS"],
["Keep", "learning"]
]
K = "Pyt"
print("ম্যাট্রিক্স:", my_list)
print("খুঁজে বের করা স্ট্রিং:", K)
result = []
for idx, row in enumerate(my_list):
if K in row:
result.append(idx)
print("K ধারণকারী সারির ইন্ডেক্স:", result)
আউটপুট
ম্যাট্রিক্স: [['Pyt', 'fun', 'python'], ['python', 'rock'], ['Pyt', 'for', 'CS'], ['Keep', 'learning']]
খুঁজে বের করা স্ট্রিং: Pyt
K ধারণকারী সারির ইন্ডেক্স: [0, 2]
লিস্ট কম্প্রিহেনশন দিয়ে সংক্ষিপ্ত
result = [i for i, row in enumerate(my_list) if K in row]
বিকল্প: enumerate + filter
result = list(filter(lambda x: K in x[1], enumerate(my_list)))
# [(0, ['Pyt', 'fun', 'python']), (2, ['Pyt', 'for', 'CS'])]
# শুধু ইন্ডেক্স: [x[0] for x in result]
Pandas-এ প্রয়োগ
import pandas as pd
df = pd.DataFrame(my_list)
# যেকোনো কলামে 'Pyt' আছে এমন সারি
mask = df.apply(lambda row: row.astype(str).str.contains('Pyt').any(), axis=1)
indices = df[mask].index.tolist()
কেস-ইনসেনসিটিভ সার্চ
K_lower = K.lower()
result = [i for i, row in enumerate(my_list) if any(K_lower in str(x).lower() for x in row)]