Sobes.tech
Middle

Իտերատորներն ու գեներատորները Python-ում ի՞նչ են և ինչո՞վ են տարբերվում:

sobes.tech AI

Պատասխան AI-ից

Python- ում ինքդ iterator-ն այն օբյեկտն է, որը իրականացնում է __iter__() և __next__() մեթոդները։ Այն թույլ է տալիս հերթականորեն անցնել հավաքածուի տարրերը առանց անհրաժեշտության բոլոր տվյալները միանգամից հիշողության մեջ բեռնել։

Generator-ը հատուկ տեսակ iterator է, որը ստեղծվում է yield բանալի բառով կամ generator արտահայտություններով։ Generator-ները խնայողաբար հաշվարկում են արժեքները անհրաժեշտության դեպքում, ինչը խնայողություն է անում հիշողությունը և թույլ է տալիս աշխատել հնարավորինս անսահման հաջորդականությունների հետ։

Հիմնական տարբերությունները՝

  • Iterator-ը ընդհանուր ինտերֆեյս է տարրերի հերթական անցման համար։
  • Generator-ը հարմար միջոց է iterator-ներ ստեղծելու համար yield-ի միջոցով։

Generator-ի օրինակ՝

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

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

Այստեղ, count_up_to-ն generator է, որը վերադարձնում է 1-ից մինչև n թվերը՝ մեկը մեկից։