Все об итераторах и генераторах по простому. Python.

แชร์
ฝัง
  • เผยแพร่เมื่อ 4 ก.ค. 2023
  • Что же такое генератор, и что такое итератор. Одно ли это и тоже, и просто названо по разному, или же это совсем разные типы обьектов.
    Как создавать, как использовать, какая польза и есть ли она вообще
    Все эти вопросы рассмотрены в видео
    #python #programming #iterator #generator

ความคิดเห็น • 40

  • @bgs12
    @bgs12 วันที่ผ่านมา +1

    Отличное объяснение!

    • @PythonGuru_
      @PythonGuru_  วันที่ผ่านมา

      спасибо

  • @leva1672
    @leva1672 หลายเดือนก่อน +2

    Чел, ты крут! благодаря тебе все понял

  • @night_niker
    @night_niker 11 หลายเดือนก่อน +2

    Интересное видео! Формат, когда преподаватель разбирается вместе с учеником добавляет жизни в материал! Давненько разбирался с итераторами и генераторами, освежил память, спасибо 😊

  • @matvey9205
    @matvey9205 11 หลายเดือนก่อน +2

    Спасибо за твои видео !
    1. Они очень информативны и без лишней воды
    2. Высокое качество материала и его подачи
    ❤❤❤

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน +1

      Приятно слышать. Пожалуйста

  • @parabellum5383
    @parabellum5383 11 หลายเดือนก่อน +3

    Желаю развития каналу! Контент действительно крутой

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน +1

      спасибо

  • @antonchzhu5708
    @antonchzhu5708 11 หลายเดือนก่อน +2

    Спасибо за ваши уроки!

  • @waltage
    @waltage 3 หลายเดือนก่อน

    видео о программировании в 4к! МОЕ ПОЧТЕНИЕ!

  • @lukaumekov5496
    @lukaumekov5496 11 หลายเดือนก่อน +1

    спасибо за видео ❤
    😊

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน +1

      👌

    • @lukaumekov5496
      @lukaumekov5496 11 หลายเดือนก่อน +1

      @@PythonGuru_ наконец я понял 🤣🐍💕

  • @nnutipa
    @nnutipa 11 หลายเดือนก่อน +1

    Раз уж видео про генераторы, то было бы неплохо осветить порядок работы yield и его отличия от return, в частности, что внутреннее состояние генератора как бы "замораживается" на моменте, когда встретился yield и продолжается с этого места в следующей итерации, а не с начала кода генератора. Хорошо это видно если запускать код генератора, у которого есть операторы после yield в пошаговом дебаге.

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      забыл это явно указать. Много всего было что сказать, и затерялось эта информация. Хотя много раз говорил, что генератор это хранит.

  • @myafo
    @myafo 11 หลายเดือนก่อน +1

    Делай мало, но качественно, пожалуйста

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      что в этом плохо?

  • @ibnalvichannel4664
    @ibnalvichannel4664 11 หลายเดือนก่อน

    Привет) как давно вы изучаете python? И еще, знаете ли вы какой либо другой язык??

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      Привет. Больше 3 лет наверно.
      php, JavaScript, HTML, CSS, MS SQL, postgre, MySQL, Laravel, Codeigniter (php frameforks), React, Vue (js frameworks), React Native (js frameworks для мобильных app).

  • @user-dl7gn3wc3e
    @user-dl7gn3wc3e 11 หลายเดือนก่อน

    Могли бы вы рассказать про отличия async def от def? В чем заключаются отличия в работе, что лучше использовать и где применять.

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      Привет. Могу. Сделаю видео. А если совсем коротко, используя async, мы запускаем функцию в потоке, т. е. не останавливаем скрипт в ожидании, пока данная функция выполнится, чтобы перейти к выполнению следующих написанных команд, а начинаем выполнять данную функцию и продолжаем выполнять скрипт дальше. Когда функция async выполнится, код результат выполнения отловит, если она возвращает его. Главная идея, что мы не блокируем процесс, пока функция не будет выполнена, а спокойно выполняем код дальше, а async функция как - «бы ковыряется» со своими расчетами параллельно выполнению другого кода. Единственное это не параллельно, а в собственном потоке. Это двумя предложениями не объяснить.

    • @user-dl7gn3wc3e
      @user-dl7gn3wc3e 11 หลายเดือนก่อน

      @@PythonGuru_ Здорово, буду ждать ролик.

  • @user-ys9er6bx9x
    @user-ys9er6bx9x 11 หลายเดือนก่อน

    За-ши-бись! Я пошёл за пивом))))

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      🍺 это отлично

  • @andregraunt
    @andregraunt 11 หลายเดือนก่อน

    подскажите please, у меня ни в ps code ни в pycharm нет такого вывода в терминале как тут в уроке, мне нужно что то доустановить? заранее спасибо

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      поддержка jupiter notebook. Если у вас pycharm, тут посмотрите www.jetbrains.com/help/pycharm/jupyter-notebook-support.html

  • @user-ir4vd5yk4x
    @user-ir4vd5yk4x 11 หลายเดือนก่อน

    ну да итого какое-то непонятное: генератор это функция, а итератор это класс. Если прям вырвать фразу из контекста то создается представление что next это генератор внутри итератора, но ведь это же не так? и где связь генератора с итератором на практике? почему мы сначала рассмотрели генератор? я правда посмотрел и не понял. не понимаю эту тему и ролик к сожалению не помог) НО всё равно огромное спасибо большое за старания и труды)

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      Итератор считай , что это обертка над итерируемым объектом, организующая курсор с пошаговым проходом двумя способами, или через for loop, тогда бежим пока не будет остановка, или посредством next, по одному элементу. Оба метода можем миксовать по желанию.
      Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора. Генератор выдает итератор генератора. Т.е мы имеем дело с итератором, который мы представляем как курсор. В итоге итератор ничего не генерит, только позволяет вытаскивать элементы, а генератор именно генерит за шаг, один элемент. А вот для доступа к ним, нужен итератор, считай курсор.

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      и next это метод для итератор. В случае с итератором, метод next, вернет элемент из текущего расположения курсора и переместит курсор на след. элемент. В случае с генератором, тоже самое, так как для перемещения по сгенерированным элементам, используется итератор.

    • @user-ir4vd5yk4x
      @user-ir4vd5yk4x 11 หลายเดือนก่อน

      @@PythonGuru_ "Генератор, это функция, генерирующая последовательность элементов, согласно написанной логике внутри функции генератора." но в вашем примере итератора Iter вы же генерируете(рассчитываете по фукнции что будет в next) но это итератор а не генератор. Вроде на словах что-то есть но на практике непонятно. Пока из ответа (спасибо за ответ) я понял что итератор просто возвращает след. значение а генератор его "генерирует" но это же одно и тоже разве нет? я про текущие примеры из видео

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      итератор ничего не генерит, он скажем так, организует курсор над итерируемым обьектом, а генератор генерит итерируемый обьект, не сохраняя его, только выдает за 1 шаг, следующий элемент, забывая его на следующем шаге. А итератор помогает генератору выдавать сгенерированный объект. Грубо говоря так

    • @PythonGuru_
      @PythonGuru_  11 หลายเดือนก่อน

      Еще раз, генератор, от глагола генерить, создавать…создает последовательность. В чем преимущество, если можно расписать логику создания требуемой по задаче последовательности, то мы можем создавать ее посредством генератора, не держа ее в памяти, сохраняя память свободной. iter, ничего не создает. Если мы применяем этот метод над существующим итерируемрм обьектом, мы никак не влияем на этот обьект, мы создаем курсор, который помогает нам отслеживать, какие элементы были уже задействованы/взяты/вытащены…но сам обьект, как был в памяти, так и остался. next всего лишь перемещает курсор, как палец в книге в роли указки. А генерато, нам генерит слово за словом, забывая пердыдущее слово, как получили новое