Python для начинающих. Урок 11: Генераторы списков (List comprehension).

Поділитися
Вставка
  • Опубліковано 17 гру 2024

КОМЕНТАРІ • 117

  • @alishevN
    @alishevN  4 роки тому +1

    1) Плейлист этого курса вот здесь: ua-cam.com/play/PLAma_mKffTOSY12JZS6l8lxKCpooPVcrn.html
    2) Не обязательно использовать Jupyter Notebook. Можно использовать любую другую IDE, например PyCharm - www.jetbrains.com/ru-ru/pycharm/
    Telegram: t.me/alishev_g
    Курс по GIT: www.udemy.com/course/git-alishev/?referralCode=71994763964B8E2E6A4E

  • @АлександрСмолячков-г5ж

    После последних уроков, я думал, что совсем тупой, но вот он 11 урок и мысли "А может не все так плохо?")
    Спасибо, все доступно!

  • @gaymonteg7011
    @gaymonteg7011 3 роки тому +6

    Классный урок) Все задачи решил самостоятельно, но ты не упомянул во второй задаче, что остальные слова надо отсеять, поэтому я пытался придумать, как бы сделать, чтобы они из списка не удалялись) Так и не придумал, решил посмотреть. Спасибо что после двух сложнейших тем ты разобрал ту, которая вернула мне веру в то, что я не такой уж и тугой

  • @musiclifeoffical
    @musiclifeoffical 4 роки тому +7

    Хороший урок, задачи правда легкие, и в первой проще просто шаг декриментации установить -2, и без условия

    • @Александр85-ю1о
      @Александр85-ю1о 3 роки тому

      или умножать на 4 и range (5, 0, -1)

    • @Дом-ч8е
      @Дом-ч8е 2 роки тому +1

      Он предоставил универсальное решение для любого списка, не все списки начинаются с четного числа

  • @alexvernua
    @alexvernua 4 роки тому +6

    коммент для рейтинга
    этот урок полегче, чувство типа "передохнули? ну а теперь погнали, жесть начинается"))

  • @iwansea6040
    @iwansea6040 4 роки тому +13

    Класс! теперь ждем 12 Урок через пол года :DDDD

    • @alishevN
      @alishevN  4 роки тому +6

      Надеюсь, что в этот раз будет быстрей :)

  • @svhanz
    @svhanz 4 роки тому +3

    Ну что сказать..Мало того, что вы сами толковый человек, так еще и преподаватель суперский!!! Видосов по питону как грязи, но вот чтобы разжевать и в рот положить!!! Огромное вам спасибо!

  • @АндрійСушко-в7ф
    @АндрійСушко-в7ф 3 роки тому

    Уроки супер, всё доступно и понятно!
    Моё решение задачи 1
    k=[num * -2 for num in range(-10,0,2)]
    print(k)
    Только после просмотра правильного ответа понял что этот способ уместен только для этой или подобных задач, где массив начинается с чётного числа

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +1

    На даный момент 0 дизлайков. Ты - супер ! Нет слов ! То чуство, когда нашел то, что искал, нет, даже больше ! Просто хотелось найти что - то понятное, а тут еще и разные способа в уроках. Уровень объяснения и преподавателя - MASTER !!!

  • @yuriipylypiv2117
    @yuriipylypiv2117 3 роки тому

    После нескольких дней ломания головы над словарями и многомерными массивами, генераторы списков и задачки довольно-таки легко дались)) Спасибо!

  • @awgoodman
    @awgoodman 4 роки тому +2

    Обалденно! Не забрасывай плейлист, пожалуйста :))))))))))))

  • @vitaliiananiev5038
    @vitaliiananiev5038 4 роки тому

    Единственный урок который мне зашёл.

  • @heythere858
    @heythere858 4 роки тому +1

    Огромное Спасибо за Уроки!!! Всегда мечтала выучить программирование и наконец-то благодаря вам начинаю понимать, что это не так уж страшно)

  • @redronny
    @redronny 4 роки тому +1

    Отличные видеоуроки и хорошая поставленная речь!
    Смотрим с удовольствием всей семьей :))

  • @ИмяФамилия-ю8х6б
    @ИмяФамилия-ю8х6б 2 роки тому

    наконец-то самое легкие задания за 11 уроков
    1
    filtr = [num * 2 for num in range(10, 1, -1) if num % 2==0]
    print(filtr)
    2
    words_filtr = [word + '.' for word in words if len(word) > 5]
    print(words_filtr)

  • @hishikpubgchr9233
    @hishikpubgchr9233 4 роки тому +1

    alishev вернулся
    Я рад что ты начел снимать видео
    Я программист
    Я смотрю твои видео по курсу Python

    • @ayazka5248
      @ayazka5248 4 роки тому +3

      Вот что самоизоляция творит!))

  • @АйдарХаертдинов-у7п

    Спасибо. Очень понятно объясняете.

  • @Altinbek95
    @Altinbek95 4 роки тому +1

    Я знал эту тему, но будто узнал что-то новое - хорошо запомнил)
    Спасибо автору, очень здорово было бы учиться дальше у Вас!

  • @eeLyuha
    @eeLyuha 4 роки тому +1

    Начинает доходить! Спасибо!

  • @donfedor007
    @donfedor007 4 роки тому +3

    Уроки хорошие! Спасибо тебе!
    Решение задачи №1
    b = [i*2 for i in reversed(range(1,11)) if i%2==0]
    print(b)

  • @svitlanaherashchenko5697
    @svitlanaherashchenko5697 4 роки тому +1

    идеальный урок! Спасибо, учитель!)

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +1

    Предельно ясно. Большое спасибо и лайк !

  • @phil2964
    @phil2964 4 роки тому

    Полезная фича, спасибо за труд - без воды все по теме!!!

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 роки тому

    Супер! Спасибо! Очень увлекательно. 1ю задачу решил чуть короче:
    s = [i * 2 for i in range(10,1,-1) if not i %2]

  • @a_peryan8581
    @a_peryan8581 4 роки тому +2

    Мой вариант решения Задачи 1:
    a = [num * 2 for num in range(10,1,-2)]
    print(a)

    • @serjk247
      @serjk247 3 роки тому

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

  • @ЕгорФилиппов-ц6л
    @ЕгорФилиппов-ц6л 3 роки тому

    эта тема самая лёгкая из всех других которые были изучены в течении 11 уроков

  • @Pashok2906
    @Pashok2906 4 роки тому +1

    Все супер! Давай ещё!

  • @Khmeriscool
    @Khmeriscool 2 роки тому

    Thank you so much, I've learned a lot from your lessons. Blessings to you!

  • @ЕкатеринаБахарева-д4д

    огромная благодарность! интересные и понятные уроки!!

  • @Cesar1k
    @Cesar1k Рік тому

    Блин ну надо же сам решил задания, спасибо за уроки )

  • @ИгорьЕгоров-э1ж
    @ИгорьЕгоров-э1ж 3 роки тому

    Ураааа! Я первый раз решил задачу точь-в-точь правильно😃😃😃😃

  • @quantum-dream
    @quantum-dream 4 роки тому +1

    Лайк, а потом просмотр!

  • @valijonli659
    @valijonli659 4 роки тому +2

    Уважаемый Наиль, очень прощу вас, курсы по Андроида тоже продольжайте пожалуйста!

  • @talisman7776
    @talisman7776 2 роки тому

    Задача1)
    h=[num*-2 for num in range(-10,-1,2) ]
    print(h)
    [20, 16, 12, 8, 4]
    Начал решать задачу не зная про третий аргумент - шаг, так как если не указывать шаг, диапазон от 10 до 1 выполняться не будет, то поставил знак -, потом перевернул знак возвращая числа в новый список. Узнал про третий аргумент, решил не менять код, а просто поставил шаг 2))).
    Задача2)
    rot=[slovo='.' for slovo in w if len(slovo)>5]
    print(rot)

  • @yamataa
    @yamataa 4 роки тому

    очень стыдно что забыл как добавлять к строчке элементы)) думал и не вспомнил но сразу понял на решении спасибо за курс очень информативно!)

  • @100к-э2у
    @100к-э2у 4 роки тому

    Вы крутой чел! Благодарю вас🖖

  • @ДанилЕфремов-у9ф
    @ДанилЕфремов-у9ф 4 роки тому +1

    Более короткий вариант, за счет большего шага и без проверки на четность, хоть он и менее универсальный: [num * 2 for num in range(10, 1, -2)]

    • @gala_boro
      @gala_boro 4 роки тому

      тоже так решила))

  • @galua
    @galua 4 роки тому +1

    Спасибо, папаша, за этот цветной видос 21 века

  • @GANGST1ER
    @GANGST1ER 4 роки тому +1

    # Задача 1
    a = [i * 2 for i in range(10, 1, -1) if i % 2 == 0]
    print(a)
    # Задача 2
    words = ["hello", "hey", "goodbye", "guitar", "piano"]
    words_filtered = [word + "." for word in words if len(word) > 5]
    print(words_filtered)

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +1

    Задача 2 была тяжелой, не потянул.... Как хорошо, что ты показуешь, как надо ! Но, хотелось бы задачек уровня ИЗИ... Допустим, один к одному или одна тяжелая, две легких. А так - все супер !

  • @Arsbossone
    @Arsbossone 3 роки тому +2

    d = []
    for i in list(range(10,1,-2)):
    d.append(i * 2)

    print(d)

  • @osvab000
    @osvab000 4 роки тому +1

    Суперполезные вещи!!!

  • @alisaholainen6334
    @alisaholainen6334 4 роки тому

    Прикольная тема, спасибо!

  • @SerhiiOr
    @SerhiiOr 4 роки тому +1

    King is back

  • @ЛинарСайфулин-т8г

    # task 1
    print([index * 2 for index in range(10, 1, -1) if index % 2 == 0])
    print([index * 2 for index in range(10, 1, -2)])
    # task 2
    print([letter + "." for letter in ["hello", "hey", "goodbye", "guitar", "piano"] if len(letter) > 5])

  • @АрсентийВикторович

    Спасибо за Ваши видео, всё доступно..
    Хотел спросить, а отмена последнего действия в Jupyter Notebook где то предусмотрена?

  • @christineborovkova4679
    @christineborovkova4679 4 роки тому

    1 задание (и первое самостоятельное)
    new_list = [el * 2 for el in list if el % 2 == 0]
    print(new_list)

  • @vladimirkulakov6126
    @vladimirkulakov6126 3 роки тому

    Решая задачи на codewars обратил внимание как много делается генераторами списка. В качестве основы можно использовать любой интерируемый объект, например строку, список, рейнж и др.

  • @serjk247
    @serjk247 3 роки тому +4

    а вот так не проще ?
    xxx = [num * 2 for num in (range(10, 1, -2))]
    print(xxx)

    • @AFK_DoSiK
      @AFK_DoSiK 3 роки тому

      Ну нормас так, но если бы наш список начинался с нечетного числа, то не сработало бы

    • @AS-si3yv
      @AS-si3yv 3 роки тому

      @@AFK_DoSiK почему?
      Вроде как декрементирует на 2 без проблем. Можно подгонять под любой удобный вариант.

  • @deniskim402
    @deniskim402 4 роки тому

    Задание 1:
    xxx = [num * 2 for num in range(10, 1, -2)]
    print(xxx)
    ----------------------------------------------------------------------
    Задание 2:
    rrr = [word + '.' for word in words if len(word) > 5]
    print(rrr)

  • @ВадимДоценко-ж2б
    @ВадимДоценко-ж2б 4 роки тому +1

    Подскажите, что значит эта ошибка? Всё также как в уроке напечатано.
    TypeError Traceback (most recent call last)
    in
    1 range_elements = []
    2
    ----> 3 for num in range(1, 6):
    4 range_elements.append( num * 3)
    5
    TypeError: 'list' object is not callable

  • @КонстантинМизуло
    @КонстантинМизуло 9 місяців тому

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

  • @АнжеликаБогдан-ч1ъ
    @АнжеликаБогдан-ч1ъ 4 роки тому +2

    Dear Alishev. If you know - answer me, please. Как можно применить Пайтон в машиностроении ? Просто я мечтаю создать свою марку автомобилей :) # без переводчика и словаря. А ты родился в Казани ? Я в Киеве. Живу в Житомире.

  • @ЕвгенийЮрьевич-ж4х

    Проверяем вторую задачу. gen = [tmp + "." for tmp in word if len(tmp) < 4]

  • @klever2183
    @klever2183 4 роки тому +2

    Подскажите пожалуйста материалы для изучения питона, я абсолютный новичок и поэтому не очень понимаю откуда нужно брать информацию(за исключением этих видео)

    • @АнжеликаБогдан-ч1ъ
      @АнжеликаБогдан-ч1ъ 4 роки тому +2

      Посмотри лекции Тимофея Хирьянова: Практика программирования на Питон 3. А еще есть менее полезное видео от ХаудиХо: Пайтон за час. Зато кратко и для новичка - в самый раз !

    • @klever2183
      @klever2183 4 роки тому +1

      Анжелика Богдан благодарю

    • @АнжеликаБогдан-ч1ъ
      @АнжеликаБогдан-ч1ъ 4 роки тому +1

      ​@@klever2183, Пожалуйста ! Просто это писал 7 - классник Вадим, то - есть я. У меня нет телефона, вот и сижу в компе тут... обучаюсь. Но все равно, спасибо за благодарность, ​ KleveR !!!

    • @АнжеликаБогдан-ч1ъ
      @АнжеликаБогдан-ч1ъ 4 роки тому

      :)

    • @АнжеликаБогдан-ч1ъ
      @АнжеликаБогдан-ч1ъ 4 роки тому +1

      Если нужно будет еще, то у Хауди Хо есть много видео по Питону, а на канале Тимофея Хирьянова лекции под названием: "Алгоритмы на Python 3 ". Был рад помочь !

  • @failentisagood
    @failentisagood 3 роки тому +1

    w = [i*2 for i in (range(10, 1, -2))]
    print(w)
    Так не правильно?
    [20, 16, 12, 8, 4]

  • @relaxchanelmix
    @relaxchanelmix 3 роки тому

    a_filtered=[num for num in a if num

  • @Irades
    @Irades Рік тому

    Спасибо)

  • @donfedor007
    @donfedor007 4 роки тому

    задача 2
    b=['helloy', 'hey', 'goodbye', 'guitar', 'piano']
    a=[i+'.' for i in b if len(i)>5]
    print (*a)

  • @suprun1982
    @suprun1982 4 роки тому

    Мой вариант
    test4 = [num * 2 for num in range(10, 0, -1) if num % 2 == 0]
    print(test4)

  • @ЕвгенийЮрьевич-ж4х

    Я ещё не досмотрел решение первой задачи, но я её решил вот так вот: generator = [tmp * 2 for tmp in reversed(range(1, 11)) if tmp % 2 == 0]

  • @ghoulsss8463
    @ghoulsss8463 3 роки тому

    nums = [num * 2 for num in range(10, 1, -1) if num % 2]
    print(nums)

  • @khachaturtamaryan3527
    @khachaturtamaryan3527 4 роки тому +1

    Добрый день
    У меня такой вопрос
    У вас ещё будет видно и сколько будет?
    Ещё хочу спросить
    Какой уровень знаний будет после этого курса?

    • @redsparrow9050
      @redsparrow9050 4 роки тому

      Считаю, что после этого курса можно спокойно в резюме е писать, что Вы middle, но ближе к senior

  • @ghoulsss8463
    @ghoulsss8463 3 роки тому

    words = ["hello", "hey", "bigmoney", "fodifeerwe"]
    words_filtred = [word + "." for word in words if len(word) < 5]
    print(words_filtred)

  • @LukyTXN
    @LukyTXN 3 роки тому +1

    не понял, а почему нельзя тупо вывести список с шагом -4?
    print(list(range(20, 1, -4)))
    ответ же одинаковый получается
    [20, 16, 12, 8, 4]

  • @Shkalalad
    @Shkalalad Рік тому

    Отфильтруйте список из строк, которые содержат "р".
    Код
    words = ["ракушка", "кукушка", "рыбка"]
    words_with_r = ...
    # Не удаляйте этот код, он нужен для проверки
    [print(w) for w in words_with_r]
    1
    words = ["ракушка", "кукушка", "рыбка"]
    2
    words_with_r = ...
    3

    4
    # Не удаляйте этот код, он нужен для проверки
    5

    6
    [print(w) for w in words_with_r]
    как это сделать ?

  • @MaksimShymanouski
    @MaksimShymanouski 3 роки тому

    зачем усложнять range, добавлять шаг, если есть доступная и понятная команда reversed. Оооочень часто решение его задач можно упростить
    zadacha1=[i*2 for i in reversed(range(2,11)) if i%2==0]
    print(zadacha1)

  • @Кентавр-ф9з
    @Кентавр-ф9з 4 роки тому +1

    уроки очень хорошие . Жду урок 12 . Можно получить сообщение об уроке

  • @nnnnn477
    @nnnnn477 3 роки тому

    c = [e * 2 for e in range(10, 1, -2)] А не легче вот так сделать?

  • @suprun1982
    @suprun1982 4 роки тому

    test5 = [w + "." for w in words if len(w) < 5]
    print(test5)

  • @lemonochelo7404
    @lemonochelo7404 4 роки тому

    моё решение
    mylist = []
    a = sorted([num * 2 for num in range(2,11) if num % 2 == 0], reverse=True)
    print(a)

  • @LOVE-kx2ks
    @LOVE-kx2ks 2 роки тому

    вот так еще короче если сделать шаг "-2"
    my_gen =[num * 2 for num in range(10, 1, -2)]

  • @nnnnn477
    @nnnnn477 3 роки тому

    Но за урок спс

  • @ilnurryazhapov
    @ilnurryazhapov 4 роки тому +1

    Сразу видно кто на карантине))

    • @alishevN
      @alishevN  4 роки тому +1

      Да, сижу дома)

  • @ВаганСтепанян-д4э
    @ВаганСтепанян-д4э 3 роки тому

    вы можете мне помочь порешать задачу по python пожалуйста. задача такова: Из файла 1 прочесть список студентов найти каждого средний балл и записать в 2 файл

  • @Kakish_
    @Kakish_ 8 місяців тому

    list1 = [num * 2 for num in e if num % 2 == 0]

  • @Сова32
    @Сова32 4 роки тому +1

    long time no see

  • @hamidullaibragimxojayev2853
    @hamidullaibragimxojayev2853 2 роки тому

    где ответ задачи

  • @Иванобовсём
    @Иванобовсём 4 роки тому

    а так низя? [num for num in range(20,0,-4)]

  • @damirkayumov6574
    @damirkayumov6574 Рік тому

    А почему в примере с генератором 6 минута для якобы короткой записи имя переменной короткое, а для контр примера взяли длинное, видимо подсознательно, чтобы убедительнее было!

  • @sairus1743
    @sairus1743 4 роки тому +2

    а что дальше?

    • @alishevN
      @alishevN  4 роки тому +4

      будут следующие уроки

    • @sairus1743
      @sairus1743 4 роки тому +1

      @@alishevN ну это я понял. А как мне применить эти знания?

  • @christineborovkova4679
    @christineborovkova4679 4 роки тому

    почему-то list не работает - TypeError: 'list' object is not callable

    • @christineborovkova4679
      @christineborovkova4679 4 роки тому

      потому что я завела на имя list лист. чтобы это убрать, сделайте del list

  • @culture_code_with_acenra
    @culture_code_with_acenra 2 роки тому

    Я пока здесь)

  • @near5090
    @near5090 4 роки тому

    куда пойти дальше досмотрев эти уроки?

  • @donfedor007
    @donfedor007 4 роки тому

    про то что можно без reversed не знал.

  • @loren1
    @loren1 4 роки тому +1

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

  • @klappyVR
    @klappyVR 3 роки тому

    кто из 2021 ?

  • @onegamer6429
    @onegamer6429 4 роки тому

    Почему такому замечательному видео так мало лайков ставят?! Я жалобу подам!

  • @ПупканищеВзрывное

    Всё ? Иные питонщики уже не делятся своими решениями в комментах ))

    • @alishevN
      @alishevN  4 роки тому +1

      А решение же есть в видео)