Bài 50. ITERABLE VÀ ITERATOR TRONG PYTHON P1 (GIỚI THIỆU)

I. Iterable Trong Python

Hiểu một cách đơn giản, một iterable trong Python là một đối tượng cho phép bạn duyệt qua các phần tử của nó với vòng lặp for.
Các đối tượng iterable không cần phải có chỉ mục, không cần phải có độ dài, thậm chí không cần phải hữu hạn. Đặc điểm tương đồng duy nhất của các đối tượng này là chúng có chứa nhiều hơn một phần tử.
Iterable là một object có phương thức iter trả về một iterator, hoặc là một object có phương thức getitem cho phép bạn lấy bất cứ phần tử nào của nó bằng indexing ví dụ như Chuỗi, List, Tuple.

Ví dụ 1:
Các câu lệnh:

# Khởi tạo 1 list
list1 = [1,2,3,4,”five”]
#Sử dụng phương thức iter với list1 để tạo 1 iterator
iter_list = iter(list1)
#Với iterator chỉ có thể truy xuất từng phần tử lần lượt bằng phương thức next
print(next(iter_list))
print(next(iter_list))
print(next(iter_list))
 

Kết quả trả ra:
1
2
3

II. Iterator Trong Python

Iterator hiểu đơn giản là một đối tượng cho phép ta lấy từng giá trị một của nó. Có nghĩa là bạn không thể lấy bất kì giá trị nào như ta hay làm với List hay Chuỗi.
Iterator không có khả năng tái sử dụng trừ một số iterator có phương thức hỗ trợ như file object sẽ có phương thức seek.
Iterator sử dụng hàm next để lấy từng giá trị một. Và sẽ có lỗi StopIteration khi bạn sử dụng hàm next lên đối tượng đó trong khi nó hết giá trị đưa ra cho bạn.

Ví dụ 2:
Các câu lệnh:

# Khởi tạo 1 list
list2 = [“one”,”two”,3]
#Sử dụng phương thức iter với list2 để tạo 1 iterator
iter_list = iter(list2)
#Với iterator chỉ có thể truy xuất từng phần tử lần lượt bằng phương thức next
print(next(iter_list))
print(next(iter_list))
print(next(iter_list))
print(next(iter_list))

Kết quả trả ra:
one

two
3
Traceback (most recent call last):
File “c:\Users\Admin\Desktop\Lam video\Test.py”, line 9, in <module>
print(next(iter_list))
StopIteration

III. Kết Luận

Như vậy, chúng tôi đã tiếp tục giới thiệu tới các bạn các khái niệm cơ bản của Iterable và Iterator trong Python. Nếu có vấn đề nào chưa rõ, các bạn hãy liên hệ với chúng tôi để được giúp đỡ.

Trả lời

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *