บางครั้งเราต้องการวนผ่านองค์ประกอบของ List ในลำดับย้อนหลัง เพื่อทำเช่นนี้ เราต้องอ่านองค์ประกอบสุดท้ายก่อน ตามด้วยองค์ประกอบก่อนหน้าสุดท้าย จนถึงองค์ประกอบที่ดัชนี 0 ฟีเจอร์การเขียนโปรแกรม Python ต่างๆ สามารถใช้เพื่อบรรลุเป้าหมายนี้
การใช้ range(N, -1, -1)
เราใช้ฟังก์ชัน range แต่เริ่มจากตำแหน่ง -1 ค่าช่วยให้เราอ่าน List จากค่าดัชนีสุดท้าย และเราวนลูปผ่านขั้นตอน -1 ในตัวอย่างด้านล่าง เราเริ่มที่ตำแหน่งที่วัดได้จากการหาความยาวของ List แล้วใช้ขั้นตอน -1 เริ่มจากตำแหน่งสุดท้าย
ตัวอย่างโค้ด
list = ['Mon', 'Tue', 'Wed', 'Thu']
for i in range(len(list) - 1, -1, -1):
print(list[i])
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
Thu Wed Tue Mon
List Comprehension และ [::-1]
วิธีนี้เกี่ยวข้องกับการ slice List เริ่มจากตำแหน่ง -1 และไปย้อนหลังจนถึงตำแหน่งแรก เราใช้ลูป for พร้อม iterator ที่ใช้เป็นดัชนีขององค์ประกอบใน List
ตัวอย่างโค้ด
list = ['Mon', 'Tue', 'Wed', 'Thu']
for i in list[::-1]:
print(i)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
Thu Wed Tue Mon
การใช้ reversed()
ฟังก์ชัน reversed() ทำงานตรงไปตรงมา คือเลือกองค์ประกอบและพิมพ์ออกมาในลำดับย้อนหลัง
ตัวอย่างโค้ด
list = ['Mon', 'Tue', 'Wed', 'Thu']
for i in reversed(list):
print(i)
ผลลัพธ์
การรันโค้ดข้างต้นจะได้ผลลัพธ์ดังนี้ -
Thu Wed Tue Mon