Iterator là gì?
Bài học 1 trên 13 trong khóa học Trình lặp trong Python của Coddy.
Bộ lặp (iterator) là một khái niệm cơ bản trong Python, cho phép bạn duyệt qua từng phần tử trong một tập hợp, mỗi lần một phần tử. Bộ lặp giúp bạn truy cập tuần tự các phần tử của một đối tượng chứa mà không cần biết cấu trúc bên trong của đối tượng đó.
Bộ lặp là gì?
Bộ lặp trong Python là một đối tượng triển khai hai phương thức đặc biệt:
__iter__(): Trả về chính đối tượng bộ lặp.__next__(): Trả về giá trị tiếp theo trong lần lặp.
Bộ lặp dùng để duyệt qua các đối tượng có thể lặp (iterable). Khi bạn dùng vòng lặp for trong Python, phía sau, bạn đang sử dụng một bộ lặp.
Đối tượng có thể lặp và bộ lặp
Điều quan trọng là bạn hiểu sự khác nhau giữa một đối tượng có thể lặp và một bộ lặp:
| Đối tượng có thể lặp | Bộ lặp |
|---|---|
| Đối tượng có khả năng trả về từng phần tử, mỗi lần một phần tử | Đối tượng đại diện cho một luồng dữ liệu |
Triển khai phương thức __iter__() |
Triển khai cả hai phương thức __iter__() và __next__() |
| Ví dụ: danh sách, tuple, chuỗi | Được tạo từ một đối tượng có thể lặp bằng hàm iter() |
Ví dụ sử dụng bộ lặp
Đây là một ví dụ đơn giản về cách dùng bộ lặp trong Python:
my_list = [1, 2, 3, 4, 5]
my_iterator = iter(my_list)
print(next(my_iterator)) # Đầu ra: 1
print(next(my_iterator)) # Đầu ra: 2
print(next(my_iterator)) # Đầu ra: 3
Trong ví dụ này, my_list là một đối tượng có thể lặp, còn my_iterator là bộ lặp được tạo từ đối tượng đó bằng hàm iter(). Sau đó, ta dùng hàm next() để lấy từng phần tử từ bộ lặp.
Bộ lặp đóng vai trò quan trọng trong Python: chúng giúp xử lý các tập dữ liệu lớn hiệu quả về bộ nhớ và cho phép đánh giá dữ liệu một cách trì hoãn.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Bài học này có một bài trắc nghiệm ngắn. Bắt đầu bài học để trả lời và theo dõi tiến độ.
Tự làm thử
Bài học này không có thử thách code.
Tất cả bài học trong Trình lặp trong Python
Tự luyện tập: Trình biên dịch Python online