একটি লিস্টে প্রথমবার কোনো এলিমেন্ট তার আগের এলিমেন্ট থেকে ছোট হলে সেটিকে "ডিক্রিজিং পয়েন্ট" বা ঘটানোর শুরু বলা হয়। এটি বের করার জন্য সিম্পল লুপ এবং break ব্যবহার করা হয়।
উদাহরণ
my_list = [21, 62, 53, 94, 55, 66, 18, 1, 0]
print("লিস্ট:", my_list)
decreasing_point = -1
for i in range(len(my_list) - 1):
if my_list[i + 1] < my_list[i]:
decreasing_point = i
break
print("ডিক্রিজিং পয়েন্ট (ইন্ডেক্স):", decreasing_point)
print("মান:", my_list[decreasing_point], "→", my_list[decreasing_point + 1])
আউটপুট
লিস্ট: [21, 62, 53, 94, 55, 66, 18, 1, 0]
ডিক্রিজিং পয়েন্ট (ইন্ডেক্স): 1
মান: 62 → 53
ব্যাখ্যা
- ইন্ডেক্স ০: ২১ → ৬২ (বাড়ছে)
- ইন্ডেক্স ১: ৬২ → ৫৩ (ঘটছে) ← **প্রথম ডিক্রিজিং পয়েন্ট**
- লুপ ব্রেক হয়, ইন্ডেক্স ১ রিটার্ন
পাইথনিক সংস্করণ: enumerate + next
# জেনারেটর এক্সপ্রেশন + next()
decreasing_point = next(
(i for i, (a, b) in enumerate(zip(my_list, my_list[1:])) if b < a),
-1 # না পেলে -1
)
print(decreasing_point) # 1
সব ডিক্রিজিং পয়েন্ট বের করা
decreasing_points = [
i for i, (a, b) in enumerate(zip(my_list, my_list[1:])) if b < a
]
print("সব ডিক্রিজিং পয়েন্ট:", decreasing_points)
# [1, 3, 5, 6, 7]
ব্যবহারিক ক্ষেত্র
- টাইম সিরিজ ডেটায় ট্রেন্ড পরিবর্তন বুঝতে
- স্টক প্রাইসে পিক বের করতে
- সেন্সর ডেটায় অসামান্য প্যাটার্ন ডিটেক্ট করতে