পাইথন লিস্টে আইটেমের ভ্যালুগুলো অবশ্যই সর্টেড অর্ডারে থাকে না। বরং কখনো কখনো আমরা শুধু নির্দিষ্ট ভ্যালুগুলোতে আগ্রহী থাকি যা একটি নির্দিষ্ট ভ্যালুর চেয়ে বড়। এই আর্টিকেলে আমরা দেখব কীভাবে আমরা সেটি পেতে পারি।
এনামারেশন ব্যবহার করে
এনামারেশন ব্যবহার করে আমরা লিস্টের এলিমেন্টগুলোর ইন্ডেক্স এবং ভ্যালু দুটোই পাই। তারপর গ্রেটার-দ্যান কন্ডিশন অ্যাপ্লাই করে শুধু প্রথম এলিমেন্ট বের করি যেখানে শর্ত পূরণ হয়। next ফাংশন লিস্টের প্রতিটি এলিমেন্ট একে একে ঘুরে।
উদাহরণ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
# next() + enumerate() ব্যবহার
result = next(k for k, value in enumerate(List) if value > 25)
print("Index is: ", result)
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে
আউটপুট
Given list: [21, 10, 24, 40.5, 11] Index is: 3
ফিল্টার এবং ল্যাম্বডা ফাংশন ব্যবহার করে
পরবর্তী উদাহরণে আমরা একটি ল্যাম্বডা ফাংশন নিই যা দেওয়া ভ্যালুটিকে প্রতিটি ইন্ডেক্সের ভ্যালু দিয়ে কমপেয়ার করে এবং যেগুলো শর্ত পূরণ করে সেগুলো ফিল্টার আউট করে। শর্ত পূরণ করা এলিমেন্টের লিস্ট থেকে প্রথম এলিমেন্ট ইন্ডেক্স ০-তে বেছে নেওয়া হয়।
উদাহরণ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
# filter() + lambda ব্যবহার
result = list(filter(lambda k: k > 25, List))[0]
print("Index is: ", List.index(result))
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে
আউটপুট
Given list: [21, 10, 24, 40.5, 11] Index is: 3
map এবং lambda ব্যবহার করে
পরবর্তী উদাহরণে আমরা একই পদ্ধতি ফলো করি কিন্তু filter-এর বদলে map ব্যবহার করি। map ফাংশন প্রতিটি এলিমেন্টের মাধ্যমে লুপ করতে ব্যবহৃত হয়। যখনই শর্ত true হয় সেই ইন্ডেক্স ক্যাপচার হয়।
উদাহরণ
List = [21, 10, 24, 40.5, 11]
print("Given list: " + str(List))
result = list(map(lambda k: k > 25, List)).index(True)
print("Index is: ", (result))
উপরোক্ত কোড চালালে নিচের ফলাফল পাওয়া যাবে
আউটপুট
Given list: [21, 10, 24, 40.5, 11] Index is: 3