Sobes.tech
Middle

Python'da iteratorlar və generatorlar nədir və onların fərqi nədir?

sobes.tech Süni İntellekt

AI-dan cavab

Python-da iterator __iter__()__next__() metodlarını həyata keçirən obyektdir. Bu, bütün məlumatları yaddaşa yükləməyə ehtiyac olmadan kolleksiyanın elementlərini ardıcıl şəkildə keçməyə imkan verir.

Generator isə, yield açar sözü və ya generator ifadələri ilə yaradılan xüsusi növ iteratordur. Generatorlər ehtiyac olduqda dəyərələri ehtiyatla hesablayır, bu da yaddaşdan qənaət edir və potensial olaraq sonsuz ardıcıllıqlarla işləməyə imkan verir.

Əsas fərqlər:

  • Iterator elementləri ardıcıl şəkildə keçmək üçün ümumi interfeysdir.
  • Generator yield istifadə edərək iteratorların yaradılmasının rahat yoludur.

Generator nümunəsi:

def count_up_to(n):
    count = 1
    while count <= n:
        yield count
        count += 1

for number in count_up_to(5):
    print(number)

Burada, count_up_to 1-dən n-ə qədər olan ədədləri bir-bir qaytarır.