Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Python

Duyệt ngược (Backward iteration) trong Python

Python hỗ trợ duyệt ngược qua range() với bước nhảy âm. Hữu ích khi cần xử lý từ cuối về đầu mà không tạo list đảo ngược.

Cú pháp range() cho duyệt ngược

range(start, stop, step)
# start: giá trị bắt đầu (bao gồm)
# stop: giá trị kết thúc (KHÔNG bao gồm)
# step: bước nhảy (âm để đi ngược)

Ví dụ 1: Đếm ngược từ 10 xuống 0

for i in range(10, -1, -1):
    print(i)

Kết quả

10
9
8
7
6
5
4
3
2
1
0

Giải thích: range(10, -1, -1) sinh ra 10, 9, ..., 0. Stop là -1 vì range không bao gồm giá trị stop.

Ví dụ 2: Duyệt ngược list/string

names = ['Hafeez', 'Aslan', 'Kareem']

for i in range(len(names) - 1, -1, -1):
    print(names[i])

Kết quả

Kareem
Aslan
Hafeez

Các cách khác duyệt ngược

CáchMã nguồnĐặc điểm
reversed()for x in reversed(seq)Pythonic, trả về iterator, không sửa gốc
Slicefor x in seq[::-1]Tạo list mới đảo ngược, tốn bộ nhớ
range()for i in range(len-1, -1, -1)Kiểm soát index, hiệu năng tốt

Khi nào dùng range ngược?

  • Cần index để xóa phần tử trong list khi duyệt (tránh lỗi skip).
  • Thuật toán DP, xử lý chuỗi từ cuối.
  • Tối ưu bộ nhớ, không tạo bản sao.

Kết luận

range(start, -1, -1) là cách cơ bản và hiệu quả để duyệt ngược. Kết hợp với reversed() cho code sạch hơn khi không cần index.