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

Sử dụng vòng lặp (Iteration) hiệu quả trong Python


Python cung cấp nhiều cách triển khai iterator. Dưới đây 5 loại từ cơ bản đến nâng cao.

Loại 1: While loop với độ dài biết trước (Ít dùng)

genre = ("Python","C","C++","Java")
i = 0
while i < len(genre):
    print(genre[i])
    i += 1

Nhược điểm: Cồng kềnh, dễ lỗi off-by-one, khó error handling.

Loại 2: For loop với range(len) (Thông dụng)

for i in range(len(genre)):
    print(genre[i])

Ưu điểm: Có index, có thể step tùy ý. Nhược điểm: Không pythonic, chậm hơn iterator trực tiếp.

Loại 3: For loop trực tiếp trên iterable (Pythonic nhất)

for item in genre:
    print(item)

Ưu điểm: Đơn giản, nhanh, tự động handle iterator protocol. Dùng cho list, tuple, dict, set, string, file...

Loại 4: enumerate() - Cần index và value

for idx, val in enumerate(genre):
    print(f"{idx}: {val}")

Tham số: enumerate(iterable, start=0).

Loại 5: zip() - Duyệt song song nhiều iterable

genre = ("Python","C","C++","Java")
extras = ["C#","Dart","Erlang","Go"]
for g, e in zip(genre, extras):
    print(f"{g} -> {e}")

Lưu ý: zip dừng ở iterable ngắn nhất. Dùng itertools.zip_longest nếu cần giữ dài hơn.

Bảng so sánh

Phương phápDùng khiHiệu năngPythonic
while + indexLogic phức tạp, điều kiện dừng tùy biếnThấp⭐
for i in range(len)Cần index, sửa đổi container gốcTrung bình⭐⭐
for item in iterableChỉ cần value (90% trường hợp)Cao⭐⭐⭐⭐⭐
enumerate()Cần index + valueCao⭐⭐⭐⭐
zip()Duyệt song song 2+ iterableCao⭐⭐⭐⭐

Kết luận

Mặc định dùng for item in iterable. Cần index → enumerate(). Duyệt song song → zip(). Tránh range(len()) trừ khi bắt buộc.