Логические any и all
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный ниже код.
Функция
На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Одна из многих причин, почему Python является таким популярным языком, заключается в том, что он читаем и выразителен. Предлагаю взглянуть на прикрепленный ниже код.
Функция
any
возвращает значение True
, если хотя бы одно из переданных утверждений верно, all
– в случае, если все верны.На мой взгляд, эти две функции заслуживают отдельного внимания всего лишь из-за их простоты в использовании.
Официальное упорядочивание словарей
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
Подписывайтесь на канал 👉@pythonofff
Кстати, Python 3.7 на официальном уровне зафиксировал соответствие порядка перебора элементов словарей порядку их добавления.
Но для некоторых это не такая уж и новость, так как и в Python 3.6 словари уже были упорядочены, что видно на примере выше.
Однако это был просто побочный результат реализации, не зафиксированный в стандарте. Новый Python оформил его официально. Теперь можно быть уверенным в сохранении порядка вставки.
Подписывайтесь на канал 👉@pythonofff
Блок else в циклах for
Хауди хо, друзья. Практически все новички теряются при виде блока
В Python блок
Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова
Хауди хо, друзья. Практически все новички теряются при виде блока
else
после циклов, поэтому сейчас немного проясним ситуацию.В Python блок
else
может быть представлен не только в условных конструкциях после if
, но и в циклах после for
и while
. В данном случае код внутри else
выполняется, только если цикл не был прерван с помощью break
.Типичный пример использования – поиск чего-либо в цикле с использованием ключевого слова
break
при нахождении, как показано на картинке. Исходный код текстом можете найти в нашем чате.Прочитать произвольную строку из файла
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
Чтобы вывести это на экран, может помочь функция
Предположим, вы решили разработать чат-бота. В нем конечно же будет с десяток самых крутых и полезных функций, может быть даже в нем будет модные нынче нейросети.
И конечно же не обошлось без приветствия, вы специально заготовили несколько различных вариантов в файле
text.txt
:Приветствую!
Здравствуйте!
Ку, здарова.
Добрый день!
Привет!
Чтобы вывести это на экран, может помочь функция
getline
из модуля linecache
. В чем главное отличие этой функции от обычного метода чтения из файла? Функция getline
кеширует все строчки файла в списке, так что следующие вызовы get_answer
отработают моментально."Быстрый" контейнер deque
Структура
К тому же, контейнер
Также для
Структура
deque
предпочтительнее, чем обычный список, в тех случаях, когда нам нужны более быстрые операции добавления и вытягивания элементов из обоих концов контейнера.К тому же, контейнер
deque
обеспечивает линейную сложность O(1) для операций добавления и выталкивания по сравнению со стандартным списком, у которого сложность по времени для тех же операций составляет O(n).Также для
deque
есть возможность использовать такие стандартные функции, как sum
, min
, max
и другие.Метод get для словарей
У словарей есть метод
Однако если такого ключа в словаре нет, то исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же
В качестве примера создадим словарь с именами, которые можно получить по определенным значениям, и напишем функцию, которая возвращает приветственную фразу со взятием имени из этого словаря.
У словарей есть метод
get
, который возвращает значение по ключу, переданному в аргументах функции. Однако если такого ключа в словаре нет, то исключение не выбрасывается, а возвращается значение по умолчанию, которое передаётся вторым аргументом, или же
None
, если второй аргумент не передан.В качестве примера создадим словарь с именами, которые можно получить по определенным значениям, и напишем функцию, которая возвращает приветственную фразу со взятием имени из этого словаря.
Pyperclip
Модуль
Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер
Подписывайтесь на канал 👉@pythonofff
Модуль
pyperclip
имеет функции copy()
и paste()
, которые позволяют отправлять текст в буфер обмена вашего компьютера и получать его оттуда.Таким образом, можно прямо через код копировать вывод программы в буфер обмена вместо того, чтобы делать это вручную.
Установить этот модуль можно привычным способом через пакетный менеджер
pip
.Подписывайтесь на канал 👉@pythonofff
Как легко отсортировать объект по нескольким ключам?
Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям.
Решить эту задачу можно очень просто с помощью
Подписывайтесь на канал 👉@pythonofff
Перед нами стоит задача отсортировать список машин. Но сделать это нужно не просто по названию бренда или году производства, а сразу по обоим полям.
Решить эту задачу можно очень просто с помощью
operator.itemgetter()
. В результате все бренды сгруппированы и отсортированы по возрасту.Подписывайтесь на канал 👉@pythonofff
Дизассемблирование
Встроенный модуль
На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Подписывайтесь на канал 👉@pythonofff
Встроенный модуль
dis
позволяет декомпилировать написанную вами программу в байт-код Python.На картинке показана работа этого модуля на примере функции, но такое можно повторить и с классами – в таком случае все его функции будут дизассемблированы.
Подписывайтесь на канал 👉@pythonofff
Немного про цифры и юникод
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
0, 1, 2, 3, 4, 5, 6, 7, 8, 9 – не единственные символы, которые считаются цифрами. Python следует правилам Юникода и обрабатывает несколько сотен символов как цифры, полный список вот здесь.
Это влияет на такие функции, как
int
, unicode.isdecimal
и даже re.match
. Предупрежден – значит вооружен.Форматирование строк
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора
В Python 2.6 появился метод
Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
Привет, в этом посте разберем возможные в Python методы форматирования строк. Все примеры использования можете посмотреть на прикрепленной ниже картинке.
Самый древний и уже редко используемый способ – с помощью оператора
%
. Написание %s
и %d
зависит от того, что мы туда передаем и что хотим увидеть в итоге, но это уже тема отдельного поста.В Python 2.6 появился метод
.format()
с немного отличающимся синтаксисом от существующего оператора %
. К слову, этот метод активно используется и по сей день, в отличии от его предшественника.Начиная с версии Python 3.6, доступны f-строки – свежий и наиболее производительный способ форматирования строк.
Подписывайтесь на канал 👉@pythonofff
Объединение словарей в python.
Начиная с Python 3.5 можно легко объединить словари. Будьте осторожны, если ключи будут пересекаться, то вы можете потерять данные.
С версии 3.9 объединение становится еще легче. Пример.
Подписывайтесь на канал 👉@pythonofff
Начиная с Python 3.5 можно легко объединить словари. Будьте осторожны, если ключи будут пересекаться, то вы можете потерять данные.
С версии 3.9 объединение становится еще легче. Пример.
Подписывайтесь на канал 👉@pythonofff
Сортировка словаря по значениям
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
Подписывайтесь на канал 👉@pythonofff
Сортировка данных словаря по значениям ключей, а не по самим ключам, нередко ставит в тупик.
Задача решается довольно просто при помощи аргумента
key
функции sorted
для указания функции, которая будет вызываться на каждом элементе до сравнения.Подписывайтесь на канал 👉@pythonofff
Списковые включения.
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
В python можно заменить громоздкие циклы, которые используются для заполнения списков. Самый простой пример использования списковых включений представлен в первом примере.
В примере 2 показано как можно добавить немного математики.
Вы даже можете использовать свои функции, как в примере 3.
Ну и куда без условного оператора? Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Нахождение наиболее частых элементов списка
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Метод
Подписывайтесь на канал 👉@pythonofff
#collections #counter
Если необходимо найти несколько наиболее часто повторяющихся значений, лучше воспользоваться счетчиком
Counter
из библиотеки collections
.Метод
Counter.most_common(x)
возвращает x
кортежей, в которых первое значение – элемент, а второе – количество его повторений. Подписывайтесь на канал 👉@pythonofff
#collections #counter
Получаем срез из бесконечного генератора
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
Чтобы получить желаемый срез, импортируем модуль
Подписывайтесь на канал 👉@pythonofff
Допустим, мы хотим получить какой-то конечный список элементов из бесконечного генератора. Что нам для этого понадобится?
Для начала создадим сам генератор
fib
, уже немного знакомый вам по посту, где мы использовали lru_cache
, правда там была рекурсивная функция. Этот генератор позволяет (за неимением другого слова) "генерировать" числа из последовательности Фибоначчи.Чтобы получить желаемый срез, импортируем модуль
itertools
, в котором уже есть удобная функция islice
, позволяющая осуществить срез генератора fib. Подписывайтесь на канал 👉@pythonofff
Функция zip
Функция
Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функция
zip
создаёт итератор, который комбинирует элементы нескольких списков. Это позволяет осуществлять параллельный обход списков в циклах for
или, например, выполнять параллельную сортировку. Подписывайтесь на канал 👉@pythonofff
#функции #zip
Функции all и any.
Названия этих функций говорят сами за себя. Функция
Подписывайтесь на канал 👉@pythonofff
Названия этих функций говорят сами за себя. Функция
all
проверяет все ли элементы последовательности истинны. А функция any
проверяет наличие хотя бы одной истинны. Посмотреть пример в онлайн редакторе. Подписывайтесь на канал 👉@pythonofff
Свап значений переменных.
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Бывают ситуации, когда нужно поменять значения переменных местами. И чтобы не захламлять код временными переменными, можно воспользоваться данным способом (внимание на 16 строку).
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Легкая проверка на анаграммность.
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Самым быстрым способом проверить, не являются ли строки анаграммами, будет через класс
Counter
Посмотреть пример в онлайн редакторе.
Подписывайтесь на канал 👉@pythonofff
Функция reduce
Модуль
Таким образом, в примере выше
Подписывайтесь на канал 👉@pythonofff
#функции #reduce
Модуль
functools
позволяет хорошо раскрыть функциональные возможности Python. Например, в functools
есть интересная функция reduce
, которая позволяет «сжимать» данные, применяя последовательно функцию и запоминая результат.Таким образом, в примере выше
reduce
умножает 1 на 2, затем результат этого умножения на 3 и так далее. Подписывайтесь на канал 👉@pythonofff
#функции #reduce