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

Python - แทนที่ค่าในลิสต์ด้วยค่าที่มากกว่าของเพื่อนบ้าน

แทนที่แต่ละสมาชิกในลิสต์ (ยกเว้นตัวแรกและตัวสุดท้าย) ด้วยค่าที่มากกว่าระหว่างเพื่อนบ้านซ้ายและขวา

ตัวอย่างโค้ด

my_list = [41, 25, 24, 45, 86, 37, 18, 99]
print("The list is :")
print(my_list)

for index in range(1, len(my_list) - 1):
    my_list[index] = my_list[index - 1] if my_list[index - 1] > my_list[index + 1] else my_list[index + 1]

print("The resultant list is :")
print(my_list)

ผลลัพธ์

The list is : [41, 25, 24, 45, 86, 37, 18, 99]
The resultant list is : [41, 41, 45, 86, 86, 86, 99, 99]

คำอธิบาย

  • วนลูปจาก Index 1 ถึง n-2 (ข้ามตัวแรกและตัวสุดท้าย)
  • เปรียบเทียบ my_list[index-1] (ซ้าย) กับ my_list[index+1] (ขวา)
  • ใช้ Ternary Operator เลือกค่าที่มากกว่า
  • แก้ไขลิสต์เดิม (In-place)