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

การวนลูปย้อนหลัง (Backward Iteration) ใน Python


บางครั้งเราต้องการวนผ่านองค์ประกอบของ 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