লিস্টে কোনো নির্দিষ্ট মান একাধিকবার থাকতে পারে। সকল ইনডেক্স খুঁজে বের করার চারটি পদ্ধতি নিচে দেওয়া হলো।
উদাহরণ
test_list = [1, 3, 4, 3, 6, 7] # 3 টি ইনডেক্স ১ এবং ৩-এ আছে # প্রত্যাশিত আউটপুট: [1, 3]
১. filter() + ল্যাম্বডা
res_list = list(filter(lambda x: test_list[x] == 3, range(len(test_list))))
print("ইনডেক্স:", res_list)
২. enumerate() + লিস্ট কাম্প্রিহেনশন (সুপারিশ করা)
res_list = [i for i, value in enumerate(test_list) if value == 3]
print("ইনডেক্স:", res_list)
৩. লিস্ট কাম্প্রিহেনশন + range(len())
res_list = [i for i in range(len(test_list)) if test_list[i] == 3]
print("ইনডেক্স:", res_list)
৪. নেভ লুপ (বিনিময়ে বোঝার জন্য ভালো)
res_list = []
for i in range(len(test_list)):
if test_list[i] == 3:
res_list.append(i)
print("ইনডেক্স:", res_list)
আউটপুট (সব পদ্ধতির জন্য একই)
ইনডেক্স: [1, 3]
তুলনা ও সুপারিশ
| পদ্ধতি | পঠনযোগ্যতা | দক্ষতা | মন্তব্য |
|---|---|---|---|
| enumerate() + কাম্প্রিহেনশন | ★★★★★ | দ্রুত | সেরা পাইথনিক পদ্ধতি |
| range(len()) + কাম্প্রিহেনশন | ★★★★☆ | দ্রুত | স্মরণীয়, enumerate() বেটর |
| filter() + lambda | ★★★☆☆ | মাঝারি | ফাংশনাল শৈলী |
| নেভ লুপ | ★★★★☆ | দ্রুত | বিগিনারদের জন্য ভালো |
প্রো টিপ: শুধু প্রথম 인ডেক্স চাইলে
test_list.index(3) ব্যবহার করুন। সব ইনডেক্স চাইলে enumerate() সেরা।