#24. Итератор и итерируемые объекты. Функции iter() и next() | Python для начинающих

  Рет қаралды 65,572

selfedu

selfedu

Күн бұрын

Пікірлер: 94
@ikehoro
@ikehoro Жыл бұрын
Огромное спасибо! Автор выручает и дает отличный материал за бесплатно!
@pavelnesterchuk5559
@pavelnesterchuk5559 2 жыл бұрын
Спасибо, очень доступно излогаете. Понятность и доступность подачи, замечательная, одна из лучших
@ИванКруткевич
@ИванКруткевич 3 жыл бұрын
У вас отличные уроки!
@orazovdidar
@orazovdidar 9 ай бұрын
Спасибо Сергей, отличное объяснение.
@ФедорПтичкин-з8п
@ФедорПтичкин-з8п 2 жыл бұрын
спасибо за этот и другие ваши курсы на этом канале. по питону ничего более обширного по объему и легкого для понимания я еще не встречал нигде.
@volodymyr8215
@volodymyr8215 2 жыл бұрын
подача матеріалу - клас! дякую.
@andredru4278
@andredru4278 10 ай бұрын
Спасибо. Позже узнаем применение.
@alucardv8551
@alucardv8551 2 жыл бұрын
Что я понял: Итерируемые обьекты - это те, которые можно перебрать, например списки и строки (а ещё кортежи, множества, словари и.т.п). Итератор - это обьект, который возвращает свои элементы по одному за раз. Когда элементы заканчиваються, итератор возвращает исключение StopIteration. - Элементы итератора можно перебрать всего один раз, для последующих придется заново создавать итератор. - Доступ к обьекту по итератору и по индеку - не одно и тоже. - Итераторы используються если нужно постоянно перебирать итерируемые обьекты разных типов (например, это происходит в цикле for).
@BodenUatrade
@BodenUatrade 6 ай бұрын
Спасибо, хоть ты доступно обьяснил
@mr_frost65
@mr_frost65 6 ай бұрын
​@@BodenUatrade Это не его слова - это слова Сергея из видео, немного переделанные автором комментария
@vitaliy3521
@vitaliy3521 2 жыл бұрын
ИМХО стоило бы рассказать, что у iter() есть второй аргумент который вызывает stopiteration в случае если элемент последовательности совпадает с этим вторым аргументом. Например l = [x for x in iter(input, '-1')], будет заполнять массив с помощью input пока не получит -1 на вход
@olegkomlev
@olegkomlev 2 жыл бұрын
Если у iter задан второй аргумент, то первым аргументом должна быть функция, выдающая очередное значение. А если первым аргументом указать список или строку, то будет ошибка.
@323ser
@323ser 2 жыл бұрын
Отличное объяснение! Большое вам спасибо!
@diplomdeady
@diplomdeady 3 жыл бұрын
Спасибо за уроки! Лайк!
@elenalevasheva3830
@elenalevasheva3830 Жыл бұрын
Супер, спасибо за урок и новое открытие
@victorenersklad4467
@victorenersklad4467 Жыл бұрын
Спасибо, добрый человек!
@ferret8592
@ferret8592 3 жыл бұрын
Спасибо за видео! Жду про генераторы
@supervichka7764
@supervichka7764 3 жыл бұрын
спасибо большое!!! очень интересно и понятно:-)
@IAnikeyI
@IAnikeyI 2 жыл бұрын
как всегда гениально!
@13_chasov_nochi
@13_chasov_nochi 2 жыл бұрын
вы отлично объясняете
@Aleks-x2i
@Aleks-x2i Жыл бұрын
Прикольно конечно. Не представляю для чего может понадобится iter() в явном виде но в контексте понимания работы for вполне познавательно.
@mazur_vg
@mazur_vg 3 жыл бұрын
Спасибо!!! Очень ценно!
@nokia_n-gage
@nokia_n-gage 2 жыл бұрын
Отличное объяснение!
@niktonikak1820
@niktonikak1820 Жыл бұрын
Thank you very much, от души
@Faritech318
@Faritech318 3 жыл бұрын
спасибо большое=)
@tbassir9076
@tbassir9076 Жыл бұрын
Отличное объяснение! Попробовал эксперимент со словарём, ключ выдал полностью, а значение -ошибку!
@ridanil1
@ridanil1 9 ай бұрын
Эта функция iter() пригодится при создании своего (пользовательского) объекта (колекции).
@Putu_pererenan
@Putu_pererenan 4 ай бұрын
Например, односвязного списка
@ИльяЗахаров-е3э
@ИльяЗахаров-е3э 2 жыл бұрын
Лучший!!!
@jamjam3337
@jamjam3337 Жыл бұрын
спасибо!👏👍
@sainco3036
@sainco3036 3 жыл бұрын
спасибо
@Psoglawec
@Psoglawec 2 жыл бұрын
Если б не это видео, вообще не понял бы чего хотят на уроке. Как же любят некоторые нести хрень заумными словами полчаса, хотя за полминуты можно всё разьяснить. Большое спасибо.
@ibrahimoglu
@ibrahimoglu 3 жыл бұрын
👍
@Юлия-ч9с6й
@Юлия-ч9с6й 2 жыл бұрын
У меня скорее крутился вопрос нужно ли каждый раз писать iter или можно сразу весь списокт(или строку) прокрутить, написав одну строку кода...
@aveok1
@aveok1 2 жыл бұрын
@selfedy, А можна же исползоват цикл for чтобы зделеь эта. Вот например: arr=[5, 9, 12, 18] for i in arr: print(i) Почему же нужно функцим итер и некст?
@aveok1
@aveok1 2 жыл бұрын
А почему учит какой-то итер если я знаю for
@likeclockwork9600
@likeclockwork9600 3 жыл бұрын
итератор итерировал, итерировал да не выинтерировал интерпретатор интерпретировал, интерпретировал да не выинтрепретировал
@impellergimpeller5133
@impellergimpeller5133 3 жыл бұрын
👍👍👍👍👍
@tonito4779
@tonito4779 Жыл бұрын
Что такое итерация - я знаю ( с задач линейного программирования в ексель, например). Но, тут мне сложно представить практическое значение этих возможностей.
@Larriva666
@Larriva666 Жыл бұрын
Получается, что механизм iter - это более абстрактное понятие? На практике iter реально используется? Или он в основном используется под капотом циклов?
@selfedu_rus
@selfedu_rus Жыл бұрын
в основном в циклах
@barma1309
@barma1309 2 жыл бұрын
Опять чёрная магия пошла
@ФедорПтичкин-з8п
@ФедорПтичкин-з8п 2 жыл бұрын
после просмотра видео возникло два вопроса: 1. можно ли как-нибудь определить количество объектов в итераторе? 2. можно ли как-то понять, что перебрал все объекты в итераторе (не используя обработчик ошибок)?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
На оба вопроса: нет, нельзя
@denistalko6585
@denistalko6585 3 жыл бұрын
Интересно, спасибо вам! Подскажите, а в каких случаях используется итератор? В каких практических задачах лучше использовать именно итератор, а не тот же цикл for? Я пока не очень вижу разницу, где лучше применять одно, а где - другое.
@selfedu_rus
@selfedu_rus 3 жыл бұрын
Цикл for и использует итератор. Правило простое, если можно без итератора. то применять его не нужно, как появится задача, где он необходим, вы естественно, им воспользуетесь.
@denistalko6585
@denistalko6585 3 жыл бұрын
@@selfedu_rus понятно, спасибо!
@Edward-y2h
@Edward-y2h 3 жыл бұрын
@@selfedu_rus интересно можно ли использовать функцию next внутри for) пошёл тестить)
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@Edward-y2h не пробовал )
@skiffsolo9419
@skiffsolo9419 2 жыл бұрын
Так и не понятно в каких случаях может пригодиться итератор. Без практического примера применения этот урок оказался слаб. for element in iter_ object: прекрасно предоставляет доступ к элементам итерируемой коллекции. Я пока вижу только один вариант, когда нужно сразу перебирать несколько разных итерируемых объектов. Практического примера применения очень не хватает.
@blindboy007
@blindboy007 28 күн бұрын
смотрю 2х для повторения
@_mrmark
@_mrmark Жыл бұрын
Что то я так и не понял для чего это нужно если есть цикл for?
@TurboDeaz
@TurboDeaz 6 ай бұрын
это встроенный метод в for. Просто показал для общего развития
@babeandproducer
@babeandproducer 2 жыл бұрын
Вроде бы все просто, но черт побери как это все запомнить. Мне кажется бух шпаргалок перед глазами я не смогу ничего написать…
@invisiblealex007
@invisiblealex007 2 жыл бұрын
я немного не понял пары моментов. А зачем нужны итераторы отдельно, если есть циклы? у него какая-то магия особая? типа этот тот же цикл, но на паузе? можем обратится к элементу и не двигаться дальше?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
циклы при переборе коллекций используют итераторы, сначала берут у коллекции итератор, а затем, перебирают его, пока не произойдет исключение StopIteration. Итератор - универсальный механизм для перебора любых коллекций.
@invisiblealex007
@invisiblealex007 2 жыл бұрын
@@selfedu_rus да, это я как раз и понял. Даже есть еще "лучшее" объяснение, которое везде используют: итератор - это как раз часть цикла. Вопрос все равно открытый: зачем нужны отдельно итераторы, если есть конструкция с for? Какая ценность того, что вместо for я буду использовать iter...next()?
@selfedu_rus
@selfedu_rus 2 жыл бұрын
@@invisiblealex007 как правило for будет достаточно во многих случаях, но понимание итератора важно, т.к. возможно вы захотите реализовать свою коллекцию, которая также должна перебираться с помощью итератора, и здесь знание как это все работает очень пригодится. Ну и второе, непосредственно через итератор можно выбрать первые k значение, а for перебирает все.
@olegkomlev
@olegkomlev 2 жыл бұрын
@@invisiblealex007 Цикл for перед выполнением цикла создает итератор из того, что стоит после in и в начале каждой итерации вызывает функцию next, пока она не даст исключение StopIteration. При помощи своего итератора можно вызывать next в любой момент. Например получить сразу 2 элемента подряд, если по текущему элементу станет ясно, что на этой же итерации нужен второй (а иногда не нужен).
@invisiblealex007
@invisiblealex007 2 жыл бұрын
@@selfedu_rus с одной стороны плнятно - проосто знание механизма, с другой стороны можно тоже первые k элементы, , скажем, в строке из 30 символов перебрать,если сделать чрез по индексу) так, что это пример не сильно убедил - это все тот де for. Или в огромном словаре считываем только первы 5 значений. Пока пользы от итератора не увилел, а вот следующий комментарий немного прояснил ситуацию. Кастомный итератор может брать по 2а значения за раз и что-то с ними делать.
@КириллСмаковенко
@КириллСмаковенко 3 жыл бұрын
range и enunerate это классы :)
@selfedu_rus
@selfedu_rus 3 жыл бұрын
нет, функции
@КириллСмаковенко
@КириллСмаковенко 3 жыл бұрын
@@selfedu_rus Перейди в пайчарме в range
@selfedu_rus
@selfedu_rus 3 жыл бұрын
@@КириллСмаковенко Да, не знал, а в ресурсах всюду функция пишут. Спасибо.
@mantrida
@mantrida 3 жыл бұрын
По утиной типизации их называют функциями, так как они ведут себя как функции. Но технически вы правы.
@datorikai9911
@datorikai9911 3 жыл бұрын
for ... next - BASIC
@Jetscrolls
@Jetscrolls Жыл бұрын
Это Пайтон такой умный, а в КуБейсике приходилось в конце цикла писать Next)
@IT-roivu
@IT-roivu Ай бұрын
Я так и не поняла, для чего нужен итератор, если есть for
@selfedu_rus
@selfedu_rus Ай бұрын
for перебирает объекты, используя итератор; не было бы итераторов, не работал бы и for ))
@IT-roivu
@IT-roivu Ай бұрын
@@selfedu_rus ну, я говорила с практической точки, ну, там, примеры, как, где, зачем они используются на практике
@blindboy007
@blindboy007 28 күн бұрын
@@IT-roivu они используются в циклах, на них строится язык программирования этим все сказано
@x056x
@x056x 2 ай бұрын
Слов много, а зачем это нужно не ясно. Зачем нужны данные методы при наличии циклов? Почему они не являются внутренними дандер-методами, скрытыми под капотом?
@Илья-м4о5я
@Илья-м4о5я Жыл бұрын
в чем проблема это сделать с помощью цикла 'for'
@selfedu_rus
@selfedu_rus Жыл бұрын
for именно эти функции и использует (заглянули под капот)
@андрейхоменко-и5я
@андрейхоменко-и5я 3 жыл бұрын
Цикл for неявно вызывает функцию next... Мой мир перевернулся..
@prosto4elovek98
@prosto4elovek98 2 жыл бұрын
Что у автора с дикцией? В некоторых словах нормально звуки выговаривает, некоторые нет... Стоит поработать над этим моментом и будет топ!
@ufc_uz6
@ufc_uz6 2 жыл бұрын
Спасибо
@СергейСмирнов-ь8у
@СергейСмирнов-ь8у 3 жыл бұрын
👍
УДИВИЛ ВСЕХ СВОИМ УХОДОМ!😳 #shorts
00:49
Farmer narrowly escapes tiger attack
00:20
CTV News
Рет қаралды 13 МЛН
Lazy days…
00:24
Anwar Jibawi
Рет қаралды 8 МЛН
Long Nails 💅🏻 #shorts
00:50
Mr DegrEE
Рет қаралды 19 МЛН
Python. Итераторы и генераторы
12:36
Y_LAB University
Рет қаралды 110
Как устроены итераторы в Python?
11:13
Хитрый питон
Рет қаралды 15 М.
Объектно ориентированное программирование в Python за 10 минут!
12:56
Хауди Хо™ - Просто о мире IT!
Рет қаралды 677 М.
УДИВИЛ ВСЕХ СВОИМ УХОДОМ!😳 #shorts
00:49