Python yinelemesi ()

Python iter () işlevi, verilen nesne için bir yineleyici döndürür.

iter()Fonksiyonu aynı zamanda bir eleman yinelenebilen bir nesne oluşturur.

Bu nesneler, for loop, while döngüsü gibi döngülerle birleştirildiğinde kullanışlıdır.

iter()İşlevin sözdizimi şöyledir:

 iter (nesne, gözcü)

iter () Parametreler

iter()İşlevi, iki parametre alır:

  • nesne - yineleyicinin oluşturulması gereken nesne (setler, tuple'lar vb.
  • sentinel (isteğe bağlı) - bir dizinin sonunu temsil etmek için kullanılan özel değer

İter () değerinden dönüş değeri

  • iter()İşlev, bir nesne için bir yineleyici nesnesini geri gönderir.
  • Kullanıcı tanımlı nesne uygulamak etmezse __iter__()ve __next__()ya __getitem()__, TypeErroristisna yükseltilir.
  • Sentinel parametresi de sağlanırsa, iter()sentinel karakter bulunmayana kadar bir yineleyici döndürür.

Örnek 1: Python iter () ile çalışma

 # 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'

Çıktı

 Aeiou 

Örnek 2: özel nesneler için iter ()

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

Çıktı

 1 2 3 Traceback (en son çağrı son): Dosya "", satır 23, Dosya "", satır 11, __next__ StopIteration 

Örnek 3: sentinel parametresiyle iter ()

 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) 

Çıktı

 2 4 8

Burada, koşulsuz özel bir yinelenebilir nesne uyguladık StopIteration.

Ancak yinelemeyi durdurmak için parametre iter()ile birlikte yöntemi kullanabiliriz sentinel. Döndürülen değeri ise __next__()değerine eşit sentinel, StopIterationyükseltilmiş olacaktır, aksi takdirde, değer iade edilir.

Önerilen Kaynaklar: Python Yineleyicileri

Ilginç makaleler...