Python iter ()

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

Yang iter()fungsi mencipta objek yang boleh mengulangi satu elemen pada satu masa.

Objek ini berguna apabila digabungkan dengan gelung seperti gelung, sementara gelung.

Sintaks iter()fungsi adalah:

 iter (objek, sentinel)

iter () Parameter

Yang iter()mengambil dua parameter:

  • objek - objek yang iteratornya harus dibuat (boleh menjadi set, tuple, dll.)
  • sentinel (pilihan) - nilai khas yang digunakan untuk mewakili akhir urutan

Nilai pulangan dari iter ()

  • Yang iter()mengembalikan objek iterator untuk objek yang diberikan.
  • Sekiranya objek yang ditentukan pengguna tidak melaksanakan __iter__(), dan __next__()atau __getitem()__, TypeErrorpengecualian akan dibangkitkan.
  • Sekiranya parameter sentinel juga disediakan, iter()kembalikan iterator sehingga watak sentinel tidak dijumpai.

Contoh 1: Mengendalikan 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'

Pengeluaran

 aeiou 

Contoh 2: iter () untuk objek tersuai

 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))

Pengeluaran

 1 2 3 Jejak Balik (panggilan terakhir terakhir): Fail "", baris 23, dalam Fail "", 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) 

Pengeluaran

 2 4 8

Di sini, kami telah melaksanakan objek yang dapat dipulihkan secara khusus tanpa StopIterationsyarat.

Namun, kita dapat menggunakan iter()metode dengan sentinelparameter untuk menghentikan lelaran. Sekiranya nilai yang dikembalikan __next__()adalah sama sentinel, StopIterationakan dinaikkan, jika tidak, nilainya akan dikembalikan.

Bacaan yang Disyorkan: Python Iterators

Artikel menarik...