26/11/2019, 17:53

Hàm next() trong Python

Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm next() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi. Hàm next() trong Python trả về phần tử tiếp theo trong iterator. Bạn có thể thêm một giá trị mặc định để trả ...

Tiếp tục với chủ đề các hàm tích hợp sẵn trong Python, bài viết sẽ giới thiệu cho các bạn về hàm next() với cú pháp, cách sử dụng cũng như các ví dụ cụ thể. Mời bạn đọc theo dõi.

Hàm next() trong Python trả về phần tử tiếp theo trong iterator. Bạn có thể thêm một giá trị mặc định để trả về nếu iterable đã là phần tử cuối cùng.

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

next(iterator, default)

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

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

  • iterator: đối tượng iterable.
  • default: giá trị mặc định sẽ trả về nếu iterable đã là phần tử cuối.

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

  • Hàm next() trả về phần tử tiếp theo trong iterator
  • Nếu iterator hết, hàm trả về giá trị mặc định default
  • Nếu iterator hết mà không có giá trị default, ngoại lệ StopIteration exception sẽ được sinh ra.

Ví dụ 1: next() hoạt động như thế nào?

random = [5, 9, 'cat']
 
 # chuyển list thành iterator
 randomIterator = iter(random)
 print(randomIterator)
 
 # Output: 5
 print(next(randomIterator))
 
 # Output: 9
 print(next(randomIterator))
 
 # Output: 'cat'
 print(next(randomIterator))
 
 # Xảy ra lỗi
 # iterator hết
 print(next(randomIterator))

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

<list_iterator object at 0x7feb49032b00>
 5
 9
 cat
 Traceback (most recent call last):
   File "python", line 18, in <module>
 StopIteration

Ở đoạn code trên, list là đối tượng iterable và bạn có thể lấy được iterator từ đó bằng cách sử dụng hàm tích hợp sẵn iter() trong Python.

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

Ví dụ trên gặp phải ngoại lệ StopIteration ở lệnh cuối cùng vì hàm next() đã trả về giá trị cuối cùng ở trên, không còn phần tử nào nữa. Trong trường hợp này, bạn nên đưa vào một giá trị mặc định ở tham số thứ 2 để không xảy ra lỗi nữa.

Ví dụ 2: Iterator có giá trị mặc định ở next()

random = [5, 9]
 
 # chuyển list thành iterator
 randomIterator = iter(random)
 
 # Output: 5
 print(next(randomIterator, '-1'))
 
 # Output: 9
 print(next(randomIterator, '-1'))
 
 # randomIterator đã hết phần tử
 # Output: '-1'
 print(next(randomIterator, '-1'))
 print(next(randomIterator, '-1'))
 print(next(randomIterator, '-1'))

Giá trị trả về: 

5
 9
 -1
 -1
 -1
0