Основы Python #9: списки

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

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

  • @Bald_Panther
    @Bald_Panther 5 лет назад +35

    Отличная подача материала. Остановлюсь на вашем курсе, т.к. вы объясняете подробно и доступно для понимания. Спасибо за труды. Желаю успехов.

  • @rainhard86
    @rainhard86 4 года назад +8

    Отличный материал для новичков. Считаю одним из лучших в рускоязычном ютубе. Просматриваю по несколько раз. Чувствуется огромный опыт программирования автора за плечами.

  • @AlexAlex-cm7ne
    @AlexAlex-cm7ne 4 года назад +6

    Недавно начал изучать Python. Просмотрел немалое количество видеоуроков на других каналах и понял на сколько прав был Сократ. Я знаю, что ничего не знаю! Спасибо за доходчивые и понятные уроки!

  • @rushmaster_
    @rushmaster_ 10 месяцев назад +1

    Спасибо

  • @ТайлерДерден-ю2у
    @ТайлерДерден-ю2у 4 года назад +3

    Учу питон самостоятельно уже полгода, и только сейчас я понял как пользоваться сортировкой по ключу. Спасибо, Олег.

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 года назад

    Очень нравится что мы переходить к задачам из реальной жизни и примеры. Спасибо

  • @voki9691
    @voki9691 4 года назад +1

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

  • @leomysky
    @leomysky 4 года назад +5

    Странно, что есть дизлайки, конечно
    На всех уроках
    Очень необычные люди их ставят
    А я, вот, лайк поставил)

  • @ИльнарШафигуллин-и6и
    @ИльнарШафигуллин-и6и 4 года назад +4

    На 7:33 неточность. Если нужно до конца списка пробежать, то срез должен быть l[::2], такой как на видео откинет последний элемент для нечётного количества элементов списка.

  • @zajva1
    @zajva1 3 года назад

    Не работает dir(s), ни чего не выводит на экран, только позже я сделал так print(dir(s)) и все появилось. Олег спасибо самое лучшее видео про питон у вас. Подписка и лайк.

  • @egorguru5224
    @egorguru5224 4 года назад +1

    Лучший!

  • @clinteastwood3864
    @clinteastwood3864 5 лет назад

    Автору спасибо! Очень хорошо объясняете!

  • @pechatlekal
    @pechatlekal Год назад

    Олег, приветствую👋 попробовал поставить для сортировки не год, как в примере, а случайные числа "_5", *_55, "_2010" и тд. В результате сортировки получается, что сортировка все-таки не по числам, а по первому символу... Так как 5-ки у меня в конце списка, хотя 5 и 55 меньше 2010🤔🤝

  • @SergeyMenshov
    @SergeyMenshov 4 года назад

    Олег, огромное вам спасибо! Разложили многое по полочкам в моей голове. Я уже давно пытаюсь как следует погрузиться в мир Python, да все как-то не получалось (хотя уже и один проект успел сделать на Django REST, вот такой вот порадокс), а с вашими курсами продвижение пошло намного быстрее, уже начал и вспомогательные небольшие скриптики писать на нем. Можно сказать наконец-то удалось проникнуться этим языком программирования. :)

  • @vivacuba1990
    @vivacuba1990 3 года назад

    спасибо тебе!!!

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

    Хотел уточнить один момент, если я все верно понимаю, сортировка проводится по каждому отдельному символу (н-р: сортировка f_19 d_120 и a_112 по возрастанию вопреки ожиданиям на выходе выдаст следующий порядок a_112, d_120 и f_19)? Вопрос в том, как это пофиксить?)
    спустя время дошло :
    list_1 = ['a_10', 'b_14', 'c_80', 'd_120', 'e_53', 'f_96', ' g_127', 'h_78']
    def by_number(name):
    return int(name.split('_')[-1])
    sbn_list1 = sorted(list_1, key=by_number)
    print(sbn_list1)
    В результате вроде как корректно сортирует

  • @aidartimerbayev9600
    @aidartimerbayev9600 5 лет назад

    Доброе время суток. Интересная и полезная информация о функции sorted по кеу. Было бы интересной информация о вложенных и многоуровневых списках.

    • @zaemiel
      @zaemiel  5 лет назад +1

      Добрый день.
      На самом деле все тоже самое. Просто нужно остановится на 3 минуты и подумать, как это делается и прокручивается в циклах. Поскольку все тоже самое, то ответы на ваши вопросы лежат на поверхности.

  • @hanckhanck8376
    @hanckhanck8376 5 лет назад +1

    Олег, не подскажете куда копать, если нужно в двух огромных списках, назовем их А и В (оба содержат полные пути до файлов) найти дубликаты файлов (по имени, без учета пути) и удалить их из списка А. Что я делаю: split('/')[-1] и сравниваю каждый элемент, но чтобы обойти такие списки нужно очень много времени. Еще пробовал вычитать список из списка, но не понимаю как потом вернуть путь. Заранее спасибо

    • @zaemiel
      @zaemiel  5 лет назад +2

      Если вы сперва ищите все файлы и берете их пути, то ускорить это вряд ли получится. Потому что здесь самое слабое звено - это чтение с диска.

    • @hanckhanck5376
      @hanckhanck5376 5 лет назад

      @@zaemiel нет списки уже готовы. Нужно только сравнить все элементы списков по последнему split('/')[-1]. Давайте я попробую объяснить:
      А=['c:/program/1.exe']
      В=['d:/videos/1.exe', 'c:/pictures/222.exe']
      мне нужно, сравнить эти списки, и удалить из списка В элемент 'd:/videos/1.exe' , так как файл 1.exe есть в списке А.

    • @zaemiel
      @zaemiel  5 лет назад

      ну, ок... а как вы это решили для себя, что оно медленно работает?

    • @артурмагомедов-б9т
      @артурмагомедов-б9т 5 лет назад

      @@zaemiel Извините, что с разных акков. Ну программы всякие поисковые они ж побыстрее находят. Мое решение тупо перебор и сравнение
      for i in A:
      for z in B:

    • @hanckhanck8376
      @hanckhanck8376 5 лет назад

      @@zaemiel блин,
      for i in A:
      if i.split('/')[-1] in B:
      print(i)
      а я зачем-то 2 раза 'for' делал для обоих списков и для А и для В. Извините, тупанул

  • @psybb4303
    @psybb4303 5 лет назад +1

    Спасибо за уроки, с удовольствием смотрю)
    А как sorted понимает, что после сравнения по ключу из функции (by_year), где на выходе получаются только цифры, нужно обратно все склеить, а не выдать ['2000', '2010', '2011'] ?
    Единственное, что пришло в голову: функция для него как какой-то прибор (отдает по одному элементы из списка не заморачиваясь, на выходе получает значение - число, и расставляет элементы по возрастанию в соответствии с полученным значением.

    • @zaemiel
      @zaemiel  5 лет назад +1

      исходные строки не меняются. Строки вообще не меняются.
      Каждый раз, когда делается split строки, создается объект списка, от которого берется один элемент. На исходную строку - это совершенно не влияет.

  • @alexanderpadalka5708
    @alexanderpadalka5708 3 года назад

    🗽

  • @ДанилВахрушев-т4э
    @ДанилВахрушев-т4э 4 года назад

    Хоть и знаю python, но все равно узнаю новые детали

  • @DadundddaD
    @DadundddaD 3 года назад

    13:09 объясните, пожалуйста, почему мы метод применили только к списку new, а изменили и new, и l?

    • @eugene_na_tytrube
      @eugene_na_tytrube 3 года назад +1

      Списки, в отличие от тех же строк, изменяемые объекты, т.е. в список можно добавлять и удалять элементы, не создавая при этом новый список, а изменяя сам имеющийся список.
      Переменные l и new - обе ссылаются на одни и тот же объект. Как два ярлыка наклееных на одну коробку. Метод изменяет сам объект.
      Пусть список будет коробкой в которой лежат элементы списка. На коробке есть две этикетки - переменные l и new. Вы кладете в коробку новый предмет - метод .append(). В коробке теперь на одни элемент больше. Но обе этикетки как висели на ней, так и продолжают висеть - т.е. обе переменные как ссылались на один и тот же список, так и продолжают на него ссылаться, а элементов теперь в списке больше. Вот и получается, что теперь обе переменные возвращают увеличеный список.
      Поэтому в уроке и заострили внимание на том, что списки изменяемые, и что об этом нужно помнить, т.к., в зависимости от того результата, который нужен, придется выбирать между использванием какого-либо метода, изменяющего сам объект, или использованием функции, которая создаст и вернет новый объект. Как например выбор между методом .sort() и функцией sorted().

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

    Что-то я не догоняю.. 22:25 что пишу -1(вычитание от длины), что 1, результат одинаковый... ведь 1 это второй элемент будет ,так же цифра 2000 . .. тогда зачем лишний символ "-" писать с конца...
    и 24:00 name и name.split в коде функции мы же name не вводим как функция его возвращает(return)?...

  • @vladimirmedvedev8908
    @vladimirmedvedev8908 3 года назад

    Не сказал про метод .copy
    И числа из сплит возвращаются или строковые значения?

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

    Олег, Вам не говорили, что Ваш голос, как у Адвоката Егорова? :)

  • @ДенисЛатыпов-ъ3и
    @ДенисЛатыпов-ъ3и 4 года назад

    Не понял , почему функция вызывается если мы не передали параметру функции ,,name'' , никакого аргумента . Таймлайн 24:19

    • @pompomag
      @pompomag 4 года назад

      в name передается список children, делает это sorted в 8 строчке

  • @victortemnov
    @victortemnov 4 года назад

    Лучший

  • @СлаваКнязев-з2ч
    @СлаваКнязев-з2ч 3 года назад +1

    что-то мне не понятно
    может потому-что я 4день учу python ?????

  • @orngelimon3181
    @orngelimon3181 3 года назад

    rl[0] что сделало

  • @palpal2493
    @palpal2493 5 лет назад +4

    По 9 яиц в коробке )))))))))))))))

    • @zaemiel
      @zaemiel  5 лет назад +11

      Вы что не слышали про "девятки яиц"?

  • @AlexApanasik
    @AlexApanasik 4 года назад

    Олег у меня тот же вопрос, что и у Денис Латыпов. Не совсем понятно как работает конструкция sorted(children, key=by_year) . Как в функцию by_year передается нужное имя? Спасибо

    • @arsennedashkivskyi2364
      @arsennedashkivskyi2364 4 года назад

      Мне кажется потому что функция by_year возвращает только года, следовательно когда ставишь ключ по функции то оно сортирует по тому что возвращает эта функция

  • @MrPain-wu4cx
    @MrPain-wu4cx 4 года назад

    У меня одного заместь урока какой-то дядя 1 минуту про игру говорит