Computer >> บทช่วยสอนคอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

Python – นับจำนวนยอด (Peaks) และหุบเขา (Valleys) ในลิสต์

เมื่อต้องการนับจำนวนยอด (peak: ตัวกลางน้อยกว่าทั้งสองข้าง) และหุบเขา (valley: ตัวกลางมากกว่าทั้งสองข้าง) ในลิสต์ สามารถใช้ลูป iteration และเงื่อนไขเปรียบเทียบได้

ตัวอย่าง

my_list = [11, 12, 24, 12, 36, 17, 28, 63]
print("The list is :")
print(my_list)
my_result = 0
for index in range(1, len(my_list) - 1):
    if my_list[index + 1] > my_list[index] < my_list[index - 1] or my_list[index + 1] < my_list[index] > my_list[index - 1]:
        my_result += 1
print("The result is :")
print(my_result)

ผลลัพธ์

The list is : [11, 12, 24, 12, 36, 17, 28, 63]
The result is : 4

คำอธิบาย

  • กำหนดลิสต์ตัวเลขและตัวนับ my_result=0

  • วนลูปดัชนี 1 ถึง len-2 (ไม่รวมขอบ) ตรวจสอบสมาชิกกลาง

  • เงื่อนไข Peak: my_list[index+1] > my_list[index] < my_list[index-1] (น้อยกว่าทั้งคู่)

  • เงื่อนไข Valley: my_list[index+1] < my_list[index] > my_list[index-1] (มากกว่าทั้งคู่)

  • ถ้าเป็น Peak หรือ Valley เพิ่มตัวนับ

  • ตัวอย่าง: index=2(24>12,24>12 peak), index=3(12<24,12<36 valley), index=4(36>12,36>17 peak), index=5(17<36,17<28 valley) = 4 จุด