Оператор in и немного о строках.
Раз уж я в прошлом посте вспомнил о списках и словарях, то научимся использовать
Так вот, в дополнение к прошлому посту скажу, что через
Удобно? Я думаю, что очень. Уж точно удобнее некоторых методов поиска для строк, так ещё и в разы читабельнее.
Спасибо за прочтение, это правда очень важно ❤️
#python
Раз уж я в прошлом посте вспомнил о списках и словарях, то научимся использовать
in не только для итерации, а для булевых функций. Кстати, прошлый пост тоже советуется к прочтению.Так вот, в дополнение к прошлому посту скажу, что через
for in можно перебирать так же и символы в строке:for char in string:Как-то совсем забыл об этом, но знать точно стоит. Ну а теперь заведём переменные:
print(char)
string = "Я бы любил тебя, но ты не Python"Отлично. С помощью оператора
temperature = {
"Moscow" : 11,
"New York": 12,
}
names = [
"Helen",
"Denis",
]
in мы можем проверить почти любое вхождение в объект, вашему вниманию вот такие записи: >>> "любил тебя" in string // TrueЯ считаю, что они интуитивно понятны. Но стоит обратить внимание вот на что:
>>> "Moscow" in temperature // True
>>> "Helen" in names // True
>>> "denis" in names // False
В случае строк этот оператор чувствителен к регистру и ищет лишь полное соответствие. Если понадобится найти вхождение независимо, то можно привести строки, например, к нижнему регистру при помощи метода lower().Удобно? Я думаю, что очень. Уж точно удобнее некоторых методов поиска для строк, так ещё и в разы читабельнее.
Спасибо за прочтение, это правда очень важно ❤️
#python
Встроенная функция enumerate.
Гениальная и простая и очень полезная функция. Она позволяет вам пронумеровать ваши данные. Рассмотрим на самых простых для понимания примерах, а именно на строках и списках:
Самый тривиальный вариант применения - цикл
Счастья, здоровья вам, и долгих лет жизни. А главное счастья. И здоровья. Счастья.
#python
Гениальная и простая и очень полезная функция. Она позволяет вам пронумеровать ваши данные. Рассмотрим на самых простых для понимания примерах, а именно на строках и списках:
string = 'progway'Как вы можете видеть, функция
names = ['Denis', 'Helen', 'Mark']
enumerate(names)
>>> <enumerate object at 0x00D624C8>
list(enumerate(string))
>>> [(0, 'p'), (1, 'r'), (2, 'o'), (3, 'g'), (4, ....]
list(enumerate(names))
>>> [(0, 'Denis'), (1, 'Helen'), (2, 'Mark')]
enumerate возвращает итерируемый объект без представления для пользователя. Поэтому мы делаем списки из этих объектов через конструктор list(). Таким образом, enumerate возвращает список пронумерованных кортежей типа (num, value). Самый тривиальный вариант применения - цикл
for:for num, name in enumerate(names, 1):Как вы можете заметить, у функции enumerate я указал второй позиционный аргумент. Это число, с которого функция будет нумеровать наши данные. Изначально функция нумерует начиная с нуля, но в данном случае мы начнём с единицы.
print(f'{num}: {name}')
Счастья, здоровья вам, и долгих лет жизни. А главное счастья. И здоровья. Счастья.
#python
Что такое list comprehension в Python.
Очень удобная сущность, которая позволяет определять списки. Самое приятное тут то, что с помощью list comprehension мы определим список быстрее, чем любым другим способом, если я не ошибаюсь.
Итак, вот как выглядит полная структура:
Ну и конечно же спасибо за прочтение, это важно для меня ❤️
#python
Очень удобная сущность, которая позволяет определять списки. Самое приятное тут то, что с помощью list comprehension мы определим список быстрее, чем любым другим способом, если я не ошибаюсь.
Итак, вот как выглядит полная структура:
[foo(x) if condition else bar(x) for x in sequence]
Это общая формула. Блоки else и if не обязательны, то есть наше представление списков может быть упрощёно вплоть до:[x for x in sequence]
Не знаю как объяснить это кратко и понятно, получается либо так, либо так. Так что давайте напишем несколько представлений с пояснениями. Все примеры с красивой подсветкой синтаксиса можно посмотреть тут./// квадраты натуральных чисел от 1 до 10Надеюсь эти примеры оказались наглядными и помогут вам в понимании темы. Напоминаю, что все примеры с красивой подсветкой синтаксиса можно ещё раз посмотреть тут.
[x ** 2 for x in range(1, 11)]
/// только чётные натуральные числа от 1 до 20
[x for x in range(1, 21) if x % 2 == 0]
Обратите внимание на то, что if тут в конце. Такая запись характерна для list comprehension без блока else
/// получить список символов из строки
[letter for letter in word]
Насчёт многочисленных условий:
/// список чисел от 1 до 200, одновременно делящихся на 2, 7 и 11
[x for x in range(1, 201) if x % 2 == 0 and x % 7 == 0 and x % 11 == 0]
Кстати, такое число всего одно: 154 = 2 * 7 * 11
/// список кортежей типа (type, num) от 1 до 5
[("Нечётное", x) if x % 2 != 0 else ("Чётное", x) for x in range(1,6)]
Ну и конечно же спасибо за прочтение, это важно для меня ❤️
#python
Генераторы и comprehensions в Python.
Немного не так подал терминологию в предыдущем посте, на что меня справедливо поправили, спасибо.
Comprehensions ≠ генератор.
Я поспешил упростить теорию, но по хорошему путать эти сущности не нужно. В интернетах ваших часто встречается объяснение comprehensions именно как генераторов, но на самом деле генератор - это уже совершенно иная вещь, о которой я планировал рассказать чуть позже, так что в скором времени будет пост ещё и о них.
На самом деле верно определить list comprehensions как один из вариантов представления списка. Можно получить список в цикле
Прошлый пост я поправил, в следующих постах постараюсь больше такого не допускать. Добра вам.
#python
Немного не так подал терминологию в предыдущем посте, на что меня справедливо поправили, спасибо.
Comprehensions ≠ генератор.
Я поспешил упростить теорию, но по хорошему путать эти сущности не нужно. В интернетах ваших часто встречается объяснение comprehensions именно как генераторов, но на самом деле генератор - это уже совершенно иная вещь, о которой я планировал рассказать чуть позже, так что в скором времени будет пост ещё и о них.
На самом деле верно определить list comprehensions как один из вариантов представления списка. Можно получить список в цикле
for, например, а можно при помощи list comprehensions. Преимущество такого представления, как я и сказал, в скорости и краткости записи. Но так как эта запись, по сути, возвращает нам новый список, часто её называют генератором, что не верно. Прошлый пост я поправил, в следующих постах постараюсь больше такого не допускать. Добра вам.
#python
Представление словарей и множеств.
Совершенно маленькое, но очень полезное дополнение к посту о list comprehensions. Аналогичным способом можно создавать списки и множества. Сразу на примере:
#python
Совершенно маленькое, но очень полезное дополнение к посту о list comprehensions. Аналогичным способом можно создавать списки и множества. Сразу на примере:
/// списокПолная формула для словарей выглядит сложнее:
[x ** 2 for x in range(1, 11)]
/// множество
{x ** 2 for x in range(1, 11)}
/// словарь
{x: x**2 for x in range(1, 11)}
{ (key if condition else defaultKey):(value if condition
else defaultValue) for key, value in sequence }
А вот для списков она аналогична list comprehensions.#python
❤1
Список доступных хештегов:
Основные:
#theory — общая теория программирования, разбор теоретических вопросов с собеседования
#quiz — короткий вопрос на свободную тему в разработке с вариантами ответов
#useful — просто полезные вещи
#blog — посты в формате блога обо мне / на свободную тему
Подгруппы:
#javascript — всё, связанное с языком
#typescript — аналогично👆
#code — посты во встроенным в текст кодом, готовые примеры
#vite — посты, которые так или иначе затрагивают сборщик
#web — всё, касательно web разработки
#principles — принципы проектирования
#react — всё, касательно React
#patterns — всё о паттернах
#data — всё о данных и манипуляциях с ними
#news — новости
#python — всё, связанное с этим языком
#mobile — мобильная разработка
#design — штучки для дизайна
#github — интересности с гита
#chatbot — мои боты и всё, что с ними связано
Основные:
#theory — общая теория программирования, разбор теоретических вопросов с собеседования
#quiz — короткий вопрос на свободную тему в разработке с вариантами ответов
#useful — просто полезные вещи
#blog — посты в формате блога обо мне / на свободную тему
Подгруппы:
#javascript — всё, связанное с языком
#typescript — аналогично
#code — посты во встроенным в текст кодом, готовые примеры
#vite — посты, которые так или иначе затрагивают сборщик
#web — всё, касательно web разработки
#principles — принципы проектирования
#react — всё, касательно React
#patterns — всё о паттернах
#data — всё о данных и манипуляциях с ними
#news — новости
@deprecated#python — всё, связанное с этим языком
#mobile — мобильная разработка
#design — штучки для дизайна
#github — интересности с гита
#chatbot — мои боты и всё, что с ними связано
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3