В Python для выполнения задач через определенные интервалы времени, например, при разработке Telegram ботов, часто используется библиотека aioschedule.
К сожалению, пакет aioschedule не обновлялся уже несколько лет и потерял совместимость с последними версиями Python. При использовании в Python 3.11 в момент выполнения задачи выбрасывается ошибка
Passing coroutines is forbidden, use tasks explicitly.
Для того, чтобы убедиться, что список A полностью входит в список B, т.е. все элементы списка A присутствуют в списке B, можно воспользоваться методами «superset» и «subset» стандартного Python класса set.
Конвертация списков в сеты так же позволяет не заботиться о проверке дубликатов, если они имеются в сравниваемых списках.
subset
Метод subset действует от меньшего сета и проверяет, входит ли он в больший сет.
Для того, чтобы уменьшить объем длинной текстовой строки, например для снижения трафика при передаче текстовых данных через Интернет, ее можно сжать перед отправкой и разархивировать после получения. При этом объем передаваемых данных значительно снижается, по сравнению с передачей текстовых строк в их исходном виде.
Чтобы заархивировать текстовую строку в памяти, воспользуемся модулем zlib.
Для сжатия строки мы будем использовать функцию compress. Эта функция принимает во входном параметре строку байт и возвращает эту строку в сжатом виде.
Python
1
2
3
4
5
6
7
8
9
10
11
12
importzlib
long_text='Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.'
Чтобы получить первый найденный по определенному условию элемент из списка или None, если ни одного такого элемента не найдено, можно использовать следующую конструкцию:
Для того, чтобы узнать, какая версия интерпретатора Python используется для выполнения кода, можно воспользоваться командой version_info из модуля sys:
Преобразование смешанной строки, в которой заданы, как отдельные числа, так и диапазоны чисел, в полный список значений можно сделать следующим образом:
Разделим получившийся список на два списка. В первый список поместим только отдельные значения. Во второй — значения преобразованные из диапазонов чисел.
Для того, чтобы сделать сдвиг значений в списке — переставить значение стоящее на первом месте списка в его конец и наоборот, нужно переформатировать список по двум срезам.
Сдвиг для списка lst:
Python
1
lst=[1,2,3,4,5]
сдвиг вперед:
Python
1
2
3
4
lst=lst[1:]+lst[:1]
print(lst)
[2,3,4,5,1]
сдвиг назад:
Python
1
2
3
4
lst=lst[-1:]+lst[:-1]
print(lst)
[1,2,3,4,5]
При необходимости циклического сдвига, данную команду следует повторить нужное число раз.
Для того, чтобы объекты из словаря сохранялись в json в удобном для просмотра виде, каждый класс объекта должен иметь функцию __repr__, возвращающую текстовое представление объекта.
В языке Python не предусмотрено внутреннего синтаксиса для многострочного комментирования кода (наподобие /* … */ в других языках). Есть два варианта обхода этой проблемы:
Использовать в качестве комментариев синтаксис многострочного литерала: ′′′
Python
1
2
3
4
'''
это многострочный комментарий
вторая строка
'''
Минут данного метода в том, что подобный комментарий остается строковой константой и встраивается в конечный код.
Если для написания кода используется IDE PyCharm можно выделить несколько строк и нажать комбинацию клавиш: Ctrl + /
Для снятия комментария со строк, нужно нажать ту же самую комбинацию клавиш на выделенных закомментированных строчках повторно.