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 թվերը՝ մեկը մեկից։