Python iter ()

Fungsi Python iter () mengembalikan iterator untuk objek yang diberikan.

The iter()Fungsi menciptakan sebuah objek yang dapat mengulangi satu elemen pada suatu waktu.

Objek ini berguna jika digabungkan dengan loop seperti for loop, while loop.

Sintaks iter()fungsinya adalah:

 iter (objek, sentinel)

Parameter iter ()

The iter()Fungsi membutuhkan dua parameter:

  • objek - objek yang iteratornya harus dibuat (bisa berupa set, tupel, dll.)
  • sentinel (opsional) - nilai khusus yang digunakan untuk mewakili akhir urutan

Kembalikan nilai dari iter ()

  • The iter()fungsi mengembalikan sebuah objek iterator untuk objek yang diberikan.
  • Jika objek yang ditentukan pengguna tidak diimplementasikan __iter__(), dan __next__()atau __getitem()__, TypeErrorpengecualian dimunculkan.
  • Jika parameter sentinel juga disediakan, iter()kembalikan iterator hingga karakter sentinel tidak ditemukan.

Contoh 1: Bekerja dengan Python iter ()

 # list of vowels vowels = ('a', 'e', 'i', 'o', 'u') vowels_iter = iter(vowels) print(next(vowels_iter)) # 'a' print(next(vowels_iter)) # 'e' print(next(vowels_iter)) # 'i' print(next(vowels_iter)) # 'o' print(next(vowels_iter)) # 'u'

Keluaran

 aeiou 

Contoh 2: iter () untuk objek khusus

 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 print_num = PrintNumber(3) print_num_iter = iter(print_num) print(next(print_num_iter)) # 1 print(next(print_num_iter)) # 2 print(next(print_num_iter)) # 3 # raises StopIteration print(next(print_num_iter))

Keluaran

 1 2 3 Traceback (panggilan terakhir terakhir): File "", baris 23, di File "", baris 11, di __next__ StopIteration 

Contoh 3: iter () dengan parameter sentinel

 class DoubleIt: def __init__(self): self.start = 1 def __iter__(self): return self def __next__(self): self.start *= 2 return self.start __call__ = __next__ my_iter = iter(DoubleIt(), 16) for x in my_iter: print(x) 

Keluaran

 2 4 8

Di sini, kami telah mengimplementasikan objek iterable kustom tanpa StopIterationkondisi.

Namun, kita dapat menggunakan iter()metode dengan sentinelparameter untuk menghentikan iterasi. Jika nilai yang dikembalikan dari __next__()sama dengan sentinel, StopIterationakan dinaikkan, jika tidak, nilai akan dikembalikan.

Bacaan yang Direkomendasikan: Python Iterators

Artikel yang menarik...