List là dãy có thứ tự, có thể thay đổi (mutable), chứa các kiểu dữ liệu khác nhau. Dưới đây 5 cách duyệt phổ biến.
Phương pháp 1: For trực tiếp (Pythonic nhất)
list_inp = ['t','u','t','o','r','i','a','l','s','p','o','i','n','t']
for val in list_inp:
print(val, end='')
# tutorialspoint
Phương pháp 2: Duyệt qua index
for i in range(len(list_inp)):
print(list_inp[i], end='')
Phương pháp 3: enumerate() - lấy index và value
for idx, val in enumerate(list_inp):
print(f"[{idx}] = {val}")
Phương pháp 4: Chỉ số âm (duyệt ngược)
for i in range(-len(list_inp), 0):
print(list_inp[i], end='')
# tniopslairotut
Phương pháp 5: Slicing (tạo sublist 1 phần tử)
for i in range(1, len(list_inp)):
print(list_inp[i-1:i], end='')
print(list_inp[-1:])
Kết quả phương pháp 5
['t']['u']['t']['o']['r']['i']['a']['l']['s']['p']['o']['i']['n']['t']
So sánh & Khuyến nghị
| Phương pháp | Dùng khi | Lưu ý |
|---|---|---|
| for x in lst | Chỉ cần giá trị | Nhanh, đọc dễ, pythonic |
| for i in range(len(lst)) | Cần index để sửa list khác | Không pythonic, chậm hơn |
| enumerate(lst) | Cần cả index và value | Khuyên dùng thay range(len) |
| Chỉ số âm / reversed() | Duyệt ngược | Dùng reversed(lst) cho rõ ràng |
| Slicing trong loop | Hiếm khi cần | Tạo nhiều list con, kém hiệu năng |
Kết luận
Mặc định dùng for item in list. Cần index → enumerate(). Duyệt ngược → reversed().