Tìm chỉ số đầu tiên mà phần tử tiếp theo nhỏ hơn phần tử hiện tại (điểm bắt đầu giảm). Sử dụng vòng lặp và break.
Mã nguồn
my_list = [21, 62, 53, 94, 55, 66, 18, 1, 0]
print("Danh sách:", my_list)
my_result = -1
for index in range(0, len(my_list) - 1):
if my_list[index + 1] < my_list[index]:
my_result = index
break
print("Chỉ số điểm giảm đầu tiên:", my_result)
Kết quả
Danh sách: [21, 62, 53, 94, 55, 66, 18, 1, 0] Chỉ số điểm giảm đầu tiên: 1
Giải thích
- Duyệt từ 0 đến
len-2(đểindex+1hợp lệ). - So sánh
my_list[index+1] < my_list[index]. - Tại index=1: 53 < 62 → đúng, gán
my_result=1vàbreak. - Nếu không tìm thấy, kết quả giữ -1.
Ứng dụng
Phát hiện điểm thay đổi xu hướng trong dữ liệu chuỗi thời gian, tìm đỉnh cục bộ, hoặc kiểm tra danh sách có được sắp xếp tăng dần không.
Cách khác (Pythonic)
# Dùng next() với generator
my_result = next((i for i in range(len(my_list)-1) if my_list[i+1] < my_list[i]), -1)