পদ্ধতি ১: enumerate() + next()
listA = [0, 0, 13, 4, 17]
res = next((i for i, val in enumerate(listA) if val), None)
print(res) # 2
next(..., None) দিয়ে ডিফল্ট ভ্যালু সেট করা যায় (নন-জিরো না থাকলে)।
পদ্ধতি ২: next() + filter() + lambda
listA = [0, 0, 13, 4, 17]
res = listA.index(next(filter(lambda x: x != 0, listA)))
print(res) # 2
filter দিয়ে প্রথম নন-জিরো বের করে index() দিয়ে পজিশন পাওয়া।
ব্যাখ্যা
- পদ্ধতি ১: জেনারেটর এক্সপ্রেশন, মেমরি-এফিশিয়েন্ট।
- পদ্ধতি ২: ফাংশনাল স্টাইল, কিন্তু দুবার ট্রাভার্সাল (filter + index)।
আউটপুট
2