কম্পিউটার টিউটোরিয়াল

পাইথন প্রোগ্রাম: লিস্টে ডিক্রিজিং পয়েন্ট (ঘটানোর শুরু) বের করা

একটি লিস্টে প্রথমবার কোনো এলিমেন্ট তার আগের এলিমেন্ট থেকে ছোট হলে সেটিকে "ডিক্রিজিং পয়েন্ট" বা ঘটানোর শুরু বলা হয়। এটি বের করার জন্য সিম্পল লুপ এবং 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]

ব্যবহারিক ক্ষেত্র

  • টাইম সিরিজ ডেটায় ট্রেন্ড পরিবর্তন বুঝতে
  • স্টক প্রাইসে পিক বের করতে
  • সেন্সর ডেটায় অসামান্য প্যাটার্ন ডিটেক্ট করতে
  1. পাইথনে লিস্টের সর্বোচ্চ ফাইনাল পাওয়ার বের করা (একটি এলিমেন্ট সরিয়ে)

  2. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে ছোট সংখ্যা বের করা

  3. পাইথন প্রোগ্রাম লিস্টে দ্বিতীয় সর্বোচ্চ সংখ্যা বের করা

  4. পাইথন প্রোগ্রাম লিস্টে সবচেয়ে বড় সংখ্যা বের করা