Итераторы, генераторы и модуль itertools

Поделиться
HTML-код
  • Опубликовано: 1 дек 2024

Комментарии • 16

  • @foobar24
    @foobar24 8 лет назад +17

    Лекции супер.
    Только плохо, что не видно, куда указывает на слайдах преподаватель.

  • @Andrew-xb3nv
    @Andrew-xb3nv 5 лет назад +1

    32:32 - можно получить, что хотим, используя list(g()) сколько угодно раз, каждый раз создаются новые генераторы.

  • @rquidrq7046
    @rquidrq7046 7 лет назад +3

    Что-то там с бинарным деревом не так, каким образом вызывается yield node.value?

    • @coppolos
      @coppolos 6 лет назад +5

      скорее всего там должно было быть yeild node, потому что node получает self.value из итератора

    • @Uni-Coder
      @Uni-Coder 4 года назад

      Да, там выходит ошибка "AttributeError: 'int' object has no attribute 'value'". Должно быть yield node, тогда работает.
      Потому что итератор возвращает значения в вершинах дерева, а не сами вершины дерева.
      Но можно переписать код:
      def __iter__(self):
      for node in self.left:
      yield node
      yield self
      for node in self.right:
      yield node
      И тогда возвращаются узлы. (Но даже здесь yield node, а не yield node.value).
      35:26 "Метод iter теперь прекрасен, с этим сложно поспорить" :))

  • @AndreiZherder
    @AndreiZherder 2 года назад

    Генератор в методе __iter__ класса BinaryTree не позволит сделать обход дерева повторно. Верно?

  • @user-ug8qc6tr6b
    @user-ug8qc6tr6b 8 лет назад +1

    В резюме к итераторам 19:18 на слайде ошибка, не __init__ , а __iter__.
    Я не совсем понял отличия iterable и iter. К примеру когда мы в цикле обходим список, мы берем итератор у этого и списка и он уже использует метод __next__ ? И каждый раз итератор будет обходить этот список, но когда мы используем функцию iter([1,2,3]), она обходит только один цикл. Я не совсем понял этот момент, каждый раз когда мы вызываем у списка итератор через цикл, нам постоянно приходит новый итератор?

    • @user-ug8qc6tr6b
      @user-ug8qc6tr6b 8 лет назад +1

      +Sergei Lebedev спасибо, теперь все понял. У вас самые лучшие лекции о python в рунете.

  • @КириллЧе-я5ы
    @КириллЧе-я5ы 10 месяцев назад

    То есть по умолчанию __iter__ не итератор с произвольным доступом?..

  • @Nanoprim
    @Nanoprim 7 лет назад

    Здравствуйте, а домашние задания доступны только очным студентам или можно формулировки заданий где нибудь в открытом доступе найти?

    • @CompscicenterRu
      @CompscicenterRu  7 лет назад

      Домашние задания доступны только студентам CS центра, да. Мы сами не публиковали формулировки в открытый доступ.

  • @nasserhujyrah8834
    @nasserhujyrah8834 3 месяца назад

    Лекция какая то не полная .Надо искать в интернете
    class Identity:
    def __init__(self):
    self.items = [5, 10, 15]
    def __contains__(self, target):
    for item in self.items:
    if item == target:
    return True
    return False
    и про функция unique не чего не говорил здесь .Что за функция ?
    Функция unique удаляет повторяющиеся элементы из переданного iterable, но также пропускает (не возвращает) элементы, которые уже есть в seen
    Это все очень интересно но отсутствуют в лекции !!

  • @ВячеславС-к1м
    @ВячеславС-к1м 4 года назад +3

    Видно что он хороший программист, английский знает, но преподавать не его

    • @mkhnuser
      @mkhnuser 3 года назад +4

      Бред. Почему?

    • @boobubuo
      @boobubuo 3 года назад +2

      @@mkhnuser очень много понтуется .. видно что может чесать языком .. и ощущение что вроде бы знает .. ему бы в политику ..

    • @artemtitov-sc8jq
      @artemtitov-sc8jq Год назад +1

      @@boobubuo клоун)