Hàm iter() trong Python

Tiếp tục với đề tài các hàm đã tích cấu kết sẵn trong Python, bài viết sẽ giới thiệu cho cả nhà về hàm iter() với cú pháp, cách ăn cũng như các lấy một ví dụ cụ thể. Mời độc giả theo dấu.

Hàm iter() được đã tích cấu kết sẵn trong Python, trả về một iterator của đối tượng người sử dụng đã cho.

Đối tượng được gia công thành từ iter() có công dụng lấy từng phần tử của nó tại mỗi thời điểm chắc chắn, rất hữu ích khi kết cấu kết với những vòng lặp for, while.

Cú pháp hàm iter() trong Python:

iter(object[, sentinel])  

Đọc thêm: Đối tượng Iterator trong Python

Các tham số của hàm iter()

Hàm iter() có 2 tham số:

  • object: đối tượng người sử dụng sẽ tạo iterator, có công dụng là set, tuples…
  • sentinel: giá trị đặc biệt được dùng để nói lên phần cuối của chuỗi.

Tùy thuộc vào tham số được truyền, iter() sẽ dành được các thuộc tính không giống nhau như sau:

Tham số object Tham số sentinel Mô tả
Bộ đối tượng người sử dụng (set, tuple)  Không có Tạo iterator cho bộ đối tượng người sử dụng
Đối tượng do người sử dụng kiên quyết (Đối tượng thiết lập – Custom object)  Không có

– thực thi phương thức __iter__() and __next__().
– thực thi phương thức __getitem __ () với những đối số nguyên bắt đầu bật nguồn từ 0.

Đối tượng do người sử dụng kiên quyết (Custom object) không thi hành __iter__(), __next() hoặc __getitem__()  Không có  Sinh ra ngoại lệ TypeError exception
Đối tượng Callable  Được cung cấp Hàm trả về đối tượng người sử dụng iterator có công dụng gọi đối tượng người sử dụng không còn đối số cho mỗi lần gọi đến phương thức __next __() của nó, nếu Sentinel được tìm thấy, ngoại lệ StopIteration exception sẽ dành được xuất hiện.

Giá trị trả về từ iter()

Hàm iter() trả về đối tượng người sử dụng iterator cho tham số được truyền vào, có công dụng lặp qua từng phần tử của nó tại mỗi thời điểm chắc chắn

Trong trường cấu kết tham số thứ hai sentinel được truyền, hàm trả về đối tượng người sử dụng iterator có công dụng gọi callable object cho đến lúc không kiếm thấy ký tự sentinel.

Ví dụ 1: iter() hoạt động nếu như phải làm như thế nào?

# danh sach nguyen am  # viet boi Kênh Tin TT39  nguyenam = ['a', 'e', 'i', 'o', 'u']    nguyenamIter = iter(nguyenam)    # in ra 'a'  print(next(nguyenamIter))    # in ra 'e'  print(next(nguyenamIter))    # in ra 'i'  print(next(nguyenamIter))    # in ra 'o'  print(next(nguyenamIter))    # in ra 'u'  print(next(nguyenamIter))

Khi bạn chạy lịch trình, output trả về sẽ là:

a  e  i  o  u

Ví dụ 2: iter() hoạt động với custom object

class PrintNumber:      def __init__(self, max):          self.max = max        def __iter__(self):          self.num = 0          return self        def __next__(self):          if(self.num >= self.max):              raise StopIteration          self.num += 1          return self.num    printNum = PrintNumber(3)    printNumIter = iter(printNum)    # in ra '1'  print(next(printNumIter))    # in ra '2'  print(next(printNumIter))    # in ra '3'  print(next(printNumIter))    # xuất hiện StopIteration  print(next(printNumIter))

Chạy lịch trình, search engine results page là:

1  2  3  StopIteration

Ví dụ 3: iter() hoạt động với callable object có sentinel

with open('mydata.txt') as fp:      for line in iter(fp.readline, ''):          processLine(line)

Khi bạn chạy lịch trình, Python sẽ mở mydata.txt ở chế độ read.

Sau đó, iter(fp.readline, '') trong chừng chừng lặp for gọi readline (đọc từng dòng trong tệp văn bản) cho đến khi tìm thấy ký tự sentinel '' (chuỗi trống).

Xem ngay: Các hàm Python đã tích cấu kết sẵn

Sưu Tầm: Internet – Kênh Tin: TT39