Python Iterators: Какво представлява Iterator в Python и как да го използвам?



В този блог за итераторите на Python ще направим задълбочено проучване за итераторите в Python и как те се прилагат.

Езикът за програмиране Python е мащабирал всеки аспект на иновациите, включително , , и др. Една от многото причини за този подвиг са понятия като Python Iterators, понятия като тях са градивните елементи на триумфа на Python като език за програмиране. В тази статия ще разгледаме следните концепции, за да разберем Python Iterators:

Итератори срещу Iterable

Обект в Python, който може да се използва като Iterable обект, се нарича Iterable. Това по същество означава, че последователността в обекта може да бъде повторена. Повечето от колекциите на Python като списък , , кортеж , комплекти , и дори обхват може да се третира като Iterable.





Какво представляват итераторите на Python?

Python I тератор е контейнер, съдържащ преброим брой стойности. Стойностите в контейнер могат да бъдат премествани с помощта на итератори - особено списъци.

Освен обръщането, итераторите също предоставят достъп до елементи от данни в контейнер, но самият той не се представяповторениет.е. не без известна свобода, взета с тази концепция или с тривиална употреба на терминологията. Итераторът е почти подобен накурсор на базата даннив поведението. Ето един прост пример за Iterator в .



my_obj = {'Edureka', 'Python', 'iterator'} iter_obj = iter (my_obj) print (следващ (iter_obj))

Изход: Едурека

Iterator е всеки тип Python, който може да се използва с „for in loop“.Всеки обект, който ще се използва като итератор, трябва да внедри следните методи.

итератори в python - edureka



1. __iter __ ()

Извиква се при инициализация на итератор.Той трябва да върне обект, който има следващ или __next__ метод.

2. __след __ ()

Следващият метод на Iterator връща следващата стойност за Iterable.

Когато Iterator се използва с цикъл ‘for in’, имплицитно се извиква next () от върху обекта Iterator. Този метод трябва да използва StopIteration, за да сигнализира края на итерацията.Заедно тези два метода се наричат ​​Iterator Protocol. Нека се опитаме да разберем как цикъл for действа като итератор в Python с пример.

за i в обект: print (i)

Нека разберем как for loop работи като итератор.

# създайте обект на итератор от този итерабилен iter_obj = iter (iterable) # безкраен цикъл, докато True: try: # get the next item element = next (iter_obj) # направете нещо с елемент, освен StopIteration: # ако StopIteration е повдигнат, прекъсване от цикъл почивка

Сега, когато знаем как за цикъл работи като Итератор. Нека разберем как можем да внедрим персонализирани итератори в Python.

Персонализирани итератори

Сега нека да разгледаме как можем да внедрим персонализирани итератори в Python. За да разберем това, ще използваме пример. В този пример ще приложим методите __iter __ () и __next __ ().

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter))

Изход: един

2

3

Сега, след като знаем как можем да приложим персонализирани итератори, нека разгледаме безкрайните итератори в Python.

Безкрайни итератори

Не винаги е задължително елементът в обект на Итератор да се изтощи. Може да има безкрайни итератори (което никога не свършва). Ето един основен пример за демонстриране на безкрайни итератори.

Вграденият iter ()може да се извика с два аргумента, където първият аргумент трябва да бъде обект (функция), който може да бъде извикан, а вторият е контролната. Iterator извиква тази функция, докато върнатата стойност не стане равна на sentinel.

Нека вземем пример, за да разберем това

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): x = self.a self.a + = 1 return x myclass = MyNumbers () myiter = iter (myclass) print (next ( myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter)) print (next (myiter))

Изход: един
2
3
4
5

В горния пример изпълнението ще продължи, докато продължаваме да добавяме изявлението за печат. За да спрем безкрайните итератори, трябва да използваме оператора stopIteration.

смесването на данни от таблицата не работи

StopIteration

За да спрем итерацията да продължава завинаги, използваме оператора StopIteration. Нека разберем това с няколко примера.

class MyNumbers: def __iter __ (self): self.a = 1 return self def __next __ (self): if self.a & ampampamplt = 5: x = self.a self.a + = 1 return x else: повиши StopIteration myclass = MyNumbers () myiter = iter (myclass) за x в myiter: print (x)

Изход: един
2
3
4
5

Веднага след като условието е false, изпълнението ще се премести в блока else и итерацията ще спре. Сега нека да разгледаме няколко други примера за итератори в Python.

Примери за Python Iterator

Ето още няколко примера за итератори в Python.

my_obj = ['Edureka', 'python', 'iterator'] iter_obj = iter (my_obj) print (next (iter_obj))

Изход: Едурека

В този пример използваме кортежа като обект, който може да се итерира.

my_obj = ('Edureka', 'python', 'iterator') iter_obj = iter (my_obj) print (следващ (iter_obj))

Изход: Едурека

Можем дори да използваме низа като обект, който може да се измери в python.

my_obj = 'Edureka' iter_obj = iter (my_obj) print (следващ (iter_obj))

Изход: Е

Това ни води до края на тази статия, където научихме как използваме Python Iterators с примери. Надявам се, че сте наясно с всичко споделено с вас в този урок.

Ако сте намерили тази статия за „Python Iterators“ подходяща, разгледайте доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят.

Ние сме тук, за да ви помогнем при всяка стъпка по вашето пътуване и да изготвим учебна програма, предназначена за студенти и професионалисти, които искат да бъдат . Курсът е създаден, за да ви даде начален старт в програмирането на Python и да ви обучи както за основните, така и за напредналите концепции на Python, заедно с различни като

Ако попаднете на някакви въпроси, не се колебайте да зададете всичките си въпроси в раздела за коментари на „Python Iterators“. Нашият екип ще се радва да отговори.