Trong bài viết này, chúng ta sẽ tìm hiểu về bốn hàm iterator có sẵn trong Python 3.x hoặc các phiên bản trước đó: accumulate(), chain(), filterfalse(), dropwhile().
Bây giờ hãy xem chi tiết từng hàm:
Phương thức Accumulate() & Chain()
Phương thức Accumulate() nhận hai đối số: một là iterable để thao tác, hai là hàm/phép toán để thực hiện. Mặc định, đối số thứ hai thực hiện phép cộng.
Phương thức Chain() in tất cả các mục tiêu iterable sau khi nối tất cả các iterable lại với nhau.
Ví dụ dưới đây giải thích triển khai:
Ví dụ
import itertools
import operator as op
# Khởi tạo list 1
li1 = ['t', 'u', 't', 'o', 'r']
# Khởi tạo list 2
li2 = [1, 1, 1, 1, 1]
# Khởi tạo list 3
li3 = ['i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't']
# Sử dụng accumulate() phương pháp cộng
print("Tổng sau mỗi lần lặp:", end="")
print(list(itertools.accumulate(li1, op.add)))
# Sử dụng accumulate() phương pháp nhân
print("Tích sau mỗi lần lặp:", end="")
print(list(itertools.accumulate(li2, op.mul)))
# Sử dụng chain() phương pháp
print("Tất cả giá trị trong chuỗi:", end="")
print(list(itertools.chain(li1, li3)))
Kết quả
Tổng sau mỗi lần lặp: ['t', 'tu', 'tut', 'tuto', 'tutor'] Tích sau mỗi lần lặp: [1, 1, 1, 1, 1] Tất cả giá trị trong chuỗi: ['t', 'u', 't', 'o', 'r', 'i', 'a', 'l', 's', 'p', 'o', 'i', 'n', 't']
Phương thức Dropwhile() & Filterfalse()
Phương thức Dropwhile() chấp nhận một hàm kiểm tra điều kiện và một iterable đầu vào để thao tác. Nó trả về tất cả giá trị của iterable sau khi điều kiện trở thành false.
Phương thức Filterfalse() chấp nhận một hàm kiểm tra điều kiện và một iterable đầu vào để thao tác. Nó trả về giá trị khi điều kiện cho trước trở thành false.
Ví dụ
import itertools
# List
l = ['t', 'u', 't', 'o', 'r']
# Sử dụng dropwhile()
print("Các giá trị sau khi điều kiện thất bại:", end="")
print(list(itertools.dropwhile(lambda x: x != 'o', l)))
# Sử dụng filterfalse()
print("Các giá trị khi điều kiện thất bại:", end="")
print(list(itertools.filterfalse(lambda x: x != 'o', l)))
Kết quả
Các giá trị sau khi điều kiện thất bại: ['o', 'r'] Các giá trị khi điều kiện thất bại: ['o']
Kết luận
Trong bài viết này, chúng ta đã tìm hiểu về các loại hàm iterator khác nhau có sẵn trong Python 3.x hoặc các phiên bản trước đó.