Программирование Python по моим конспектам. Лекция 30

Пост можно топить, минусить и всячески убивать, ибо в горячем он нахер не нужен, а вот подписчикам пригодится.


Для тех кто не в теме, тут я перевожу свои лекции по питону с языка немецкого на язык человеческий, поэтому- если что- я не виноват. Эти лекции созданы не для того, чтобы сделать из человека говнокодера, а для того, чтобы помочь в сложных темах, которые некому объяснить, а книга по программированию не может с этим помочь. Если вы никогда не были в такой ситуации- значит вы вундеркинд и я хочу от вас детей.

Отвечая на 90% одинаковых вопросов-

Я знаю, что это есть в каждой книге по питону. Это логично. Не логично было бы, если бы это было в книге по анатомии хомяков.

Я это делаю, потому что мне это нравится.


Привет товарищи, сегодня переживаем маленький юбилей. Тридцатая лекция. Думал, что меня не хватит так на долго.

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

Вроде как мы уже умеем делать кучу всяких интересных штук со списками, однако, это еще не все финты ушами, которые мы сможем сделать с ними. Впрочем, я все и не знаю)

Давайте мы еще раз и подробнее рассмотрим создание списка.  Обратите ваши взоры на муть ниже, но особо не заморачивайтесь. В процессе примеров я все объясняю. Данное есть ни что иное, как выписка из документации, которая показывает нам возможные пути создания списка.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Начнем с первого, который нам уже известен, но повторение -мать учения.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

То, что выше мы уже делали много раз, и в объяснении не нуждается. Элементы обозначаются в квадратных скобках. Они могут быть просто перечислены, как в строке 1, или быть в форме выражений как в строке 3.

Элементами могут быть и другие списки, как в строке 2.


Переходим к следующему примеру. Списки можно генерировать абстрактным медом. Так же как в математике мы определяем множества. Иначе говоря, мы пишем в скобках конструкцию, согласно правилам на первой картинке (вторая строка).

Проще говоря, выглядит она так

lists=[выражение for элемент in новый список]

Итак, что мы делаем. Грубо говоря, мы используем элементы одного списка, для создания другого с помощью фор-цикла. Рассмотрим подробнее наш фор-цикл, который мы уже проходили. Мы хотим вывести на экран все элементы списка

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

А как же нам запихнуть эти значения в новый список?

Можно, конечно, так как мы раньше делали.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

А можно и по "модному".

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Итак, открываем квадратную скобку и пишем выражение, у нас оно сейчас представляет собой i**2. Далее все выглядит как самый обычный фор-цикл, который мы уже прошли выше.

Перебирается каждый элемент строки от 0 до 5 и возводится в квадрат.

Единственная разница в том, что элементы старого списка нам не нужно вручную добавлять в новый.


Можно еще и так делать

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

Переходим к третьей строке первой картинки. Переводя это дело на человеческий язык, выглядит она так

s=[выражение for элемент in другой список if условие]

Очень этот список похож на предыдущий, однако мы добавили условие. Давайте испытаем на практике. Мы, к  примеру, хотим получить элементы одного списка, которые делятся на 5 в другом списке.

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

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

Программирование Python по моим конспектам. Лекция 30 Python, Питон, Лекция, Длиннопост

На этом на сегодня все.



На следующей лекции мы рассморим новые методы для работы со списками.


del s[i] удаляем элемент с индексом i, длина списка уменьшается


del s[j:i] удаляем элементы с индексами от i до j


s.extend(t) список s дополняется элементами последовательности t


s.index(x) будет возвращен наименьший индекс i когда s[i]==x


s.pop() возвращает последний элемент списка, причем он из списка удаляется


s.remove(x) удаляется первый элемент списка со значением x


s.reverse() порядок элементов сортируется "наоборот"- например было [1,2] стало [2,1]

1
Автор поста оценил этот комментарий

Вот ты пишешь, что твои посты в горячем нахер не нужны. B я только на 30 лекции на тебя наткнулся.

Иллюстрация к комментарию
2
Автор поста оценил этот комментарий

Слышь, лектор, а ты про PEP8 что-нибудь слышал?

раскрыть ветку
Автор поста оценил этот комментарий

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

раскрыть ветку
Автор поста оценил этот комментарий

Gruess Gott, есть возможность получить доступ ко всему списку лекций? Через поисковик находит только с 1 по 10, и с 27 по 30 😔

Автор поста оценил этот комментарий

Блин только хотел поблагодарить ибо сам хотел начать изучать Питон, а ты оказывается не придерживаешся стандарта написания кода. Вот бы я щяс научился)