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()__
,TypeError
pengecualian 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 StopIteration
kondisi.
Namun, kita dapat menggunakan iter()
metode dengan sentinel
parameter untuk menghentikan iterasi. Jika nilai yang dikembalikan dari __next__()
sama dengan sentinel
, StopIteration
akan dinaikkan, jika tidak, nilai akan dikembalikan.
Bacaan yang Direkomendasikan: Python Iterators