Использование анонимных функций
Иногда именованию функции не стоит уделять особого внимания. Например, если вы уверены, что она будет использована только раз. Для таких случаев Python предлагает применять анонимные функции, также называемые лямбда-функциями.
Иногда именованию функции не стоит уделять особого внимания. Например, если вы уверены, что она будет использована только раз. Для таких случаев Python предлагает применять анонимные функции, также называемые лямбда-функциями.
Улучшение читаемости больших чисел
Вы можете разделять цифры знаком подчеркивания. Это сделает большое число более читаемым, в то время как математически это не повлияет на синтаксис, поэтому вы по-прежнему можете выполнять арифметические операции как обычно:
Вы можете разделять цифры знаком подчеркивания. Это сделает большое число более читаемым, в то время как математически это не повлияет на синтаксис, поэтому вы по-прежнему можете выполнять арифметические операции как обычно:
Генерация перестановок для итерируемого объекта
Функция
Если
Функция
permutations
модуля itertools возвращает итератор с последовательными перестановками из элементов входной последовательности iterable
. Каждая комбинация заключена в кортеж с длинной r
элементов.Если
r
не указано или None
, тогда по умолчанию r
равна длине iterable
и генерируются все возможные перестановки полной длины.Улучшения в проверке типов в python 3.10
Python 3.10 включает много улучшений в проверке типов, среди них оператор объединения типов, синтаксис которого теперь чище.
Кроме того, это простое улучшение не ограничивается только аннотациями типа, оно может применяться с функциями
Python 3.10 включает много улучшений в проверке типов, среди них оператор объединения типов, синтаксис которого теперь чище.
Кроме того, это простое улучшение не ограничивается только аннотациями типа, оно может применяться с функциями
isinstance()
и issubclass()
:Синтаксис менеджера контекста в python 3.10
Контекстные менеджеры отлично подходят, чтобы открывать и закрывать файлы, работать с соединениями баз данных и делать многое другое, а в Python 3.10 они стали немного удобнее. Изменение позволяет в скобках указывать несколько контекстных менеджеров, что удобно, если вы хотите создать в одном операторе
Контекстные менеджеры отлично подходят, чтобы открывать и закрывать файлы, работать с соединениями баз данных и делать многое другое, а в Python 3.10 они стали немного удобнее. Изменение позволяет в скобках указывать несколько контекстных менеджеров, что удобно, если вы хотите создать в одном операторе
with
несколько менеджеров:Инвертирование словаря с помощью функции zip()
Иногда возникает необходимость поменять местами ключи со значениями в словаре. Для этого может пригодиться функция
Иногда возникает необходимость поменять местами ключи со значениями в словаре. Для этого может пригодиться функция
zip()
:Алгоритм бинарного поиска числа в списке
Предположим, что вы ищите фамилию в телефонной книге. Она начинается с буквы "К". Конечно можно начать с самого начала и перелистывать каждую страницу в надежде рано или поздно наткнуться на нужную фамилию, но для более рационального поиска лучше раскрыть книгу на середине, ведь нужная нам буква находится где-то ближе к центру книги.
Перед нами типичная задача поиска. В данном случае для решения задачи можно применить алгоритм бинарного поиска.
Рассмотрим пример, как работает данный поиск. Сыграем в игру, я загадал число от 1 до 100 и вы должны его угадать. При каждой попытке вам будет известно больше ли или меньше моё загаданное число по отношению к названному вами. Вы можете начать перебирать все варианты (1, 2, 3, 4, ...) и в худшем случае вы отгадаете число за 99 попыток. Сложность данного аглоритма O(n). Бинарный поск выполняется со сложностью O(log n) и угадать число будет возможно всего за 7 попыток
Предположим, что вы ищите фамилию в телефонной книге. Она начинается с буквы "К". Конечно можно начать с самого начала и перелистывать каждую страницу в надежде рано или поздно наткнуться на нужную фамилию, но для более рационального поиска лучше раскрыть книгу на середине, ведь нужная нам буква находится где-то ближе к центру книги.
Перед нами типичная задача поиска. В данном случае для решения задачи можно применить алгоритм бинарного поиска.
Рассмотрим пример, как работает данный поиск. Сыграем в игру, я загадал число от 1 до 100 и вы должны его угадать. При каждой попытке вам будет известно больше ли или меньше моё загаданное число по отношению к названному вами. Вы можете начать перебирать все варианты (1, 2, 3, 4, ...) и в худшем случае вы отгадаете число за 99 попыток. Сложность данного аглоритма O(n). Бинарный поск выполняется со сложностью O(log n) и угадать число будет возможно всего за 7 попыток
Модуль copy - поверхностное и глубокое копирование объектов
Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций, или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал.
Модyль copy - один из вариантов копирования объекта.
Поверхностная копия создает новый составной объект, и затем (по мере возможности) вставляет в него ссылки на объекты, находящиеся в оригинале.
Глубокая копия создает новый составной объект, и затем рекурсивно вставляет в него копии объектов, находящихся в оригинале.
Операция присваивания не копирует объект, он лишь создаёт ссылку на объект. Для изменяемых коллекций, или для коллекций, содержащих изменяемые элементы, часто необходима такая копия, чтобы её можно было изменить, не изменяя оригинал.
Модyль copy - один из вариантов копирования объекта.
copy.copy(x)
- возвращает поверхностную копию x.copy.deepcopy(x)
- возвращает полную копию x.Поверхностная копия создает новый составной объект, и затем (по мере возможности) вставляет в него ссылки на объекты, находящиеся в оригинале.
Глубокая копия создает новый составной объект, и затем рекурсивно вставляет в него копии объектов, находящихся в оригинале.
This media is not supported in your browser
VIEW IN TELEGRAM
Нет идей для проектов? В моем втором канале Replit публикуются интересные приложения с готовым кодом.
Если еще нет коммерческого опыта, но нужно наполнить портфолио — подпишись. Тут проекты, написанные на разных языках программирования, которые ты сможешь повторить: приложения, сервисы, игры, боты и много чего ещё.
Если еще нет коммерческого опыта, но нужно наполнить портфолио — подпишись. Тут проекты, написанные на разных языках программирования, которые ты сможешь повторить: приложения, сервисы, игры, боты и много чего ещё.
Получение наибольших или наименьших чисел из списка
Представим, что у вас есть список с числами и необходимо получить указанное число наибольших или наименьших чисел из него.
Одно из решений данной задачи - использование встроенной библиотеки
Представим, что у вас есть список с числами и необходимо получить указанное число наибольших или наименьших чисел из него.
Одно из решений данной задачи - использование встроенной библиотеки
heapq
Подсчет всех уникальных значений
Вы можете использовать метод
Вы можете использовать метод
Counter
из библиотеки collections
, чтобы получить словарь с подсчетом всех уникальных элементов в списке:Просмотр всех методов и атрибутов объекта
Все атрибуты и методы объекта можно посмотреть с помощью функции
Для объектов класса она возвращает список имен всех допустимых атрибутов и базовых атрибутов.
Для объектов библиотек функция вернёт список имен всех атрибутов, содержащихся в этом модуле.
Если параметры не переданы, она возвращает список имен в текущей локальной области.
Все атрибуты и методы объекта можно посмотреть с помощью функции
dir()
. Данная функция ведет себя по-разному с разными типами объектов. Для объектов класса она возвращает список имен всех допустимых атрибутов и базовых атрибутов.
Для объектов библиотек функция вернёт список имен всех атрибутов, содержащихся в этом модуле.
Если параметры не переданы, она возвращает список имен в текущей локальной области.
Печать словаря из большого количества вложенных объектов
Для увеличения читаемости при печати словаря из большого количества вложенных объектов может пригодиться модуль
Для увеличения читаемости при печати словаря из большого количества вложенных объектов может пригодиться модуль
pprint
Wikipedia в Python
Библиотека
Библиотека
wikipedia
позволяет взаимодействовать с Википедией не выходя из редактора, для этого установите модуль командой pip install wikipedia
. Метод page
позволит получить страницу по вашему запросу, а summary
отдаст короткое содержание найденной статьи.Выполнение строки как обычного python кода
В Python есть возможность динамически считывать строку и обрабатывать её как часть Python кода. Это достигается использованием функций eval() для вычисления выражений и exec() для выполнения операторов
В Python есть возможность динамически считывать строку и обрабатывать её как часть Python кода. Это достигается использованием функций eval() для вычисления выражений и exec() для выполнения операторов
Загрузка файлов из интернета
Один из простейших способов загрузить файлы в Python – через модуль
Для того, чтобы использовать
Один из простейших способов загрузить файлы в Python – через модуль
wget
, с которым вам не нужно открывать конечный файл. Метод download
модуля wget
загружает файлы в одну строчку. Метод принимает два параметра: URL путь к загружаемому файлу и локальный путь, где следует сохранить файл.Для того, чтобы использовать
wget
, не забудьте выполнить команду pip install wget
Работа с массивами с помощью библиотеки NumPy
Данная библиотека считается одной из самых лучших и наиболее широко используемых библиотек Python для машинного обучения. Она очень интерактивна и интуитивно понятна. Данная библиотека помогает нам легко реализовывать сложные математические операции при работе с массивами.
Для того, чтобы установить библиотеку, выполните команду
Данная библиотека считается одной из самых лучших и наиболее широко используемых библиотек Python для машинного обучения. Она очень интерактивна и интуитивно понятна. Данная библиотека помогает нам легко реализовывать сложные математические операции при работе с массивами.
Для того, чтобы установить библиотеку, выполните команду
pip install numpy
Дзен Python
Тим Петерс ещё в далёком 1999 году предложил PEP 20, который должен был содержать в себе 20 правил по написанию кода. Но в итоге их оказалось всего 19.
Последний пункт он предложил написать Гвидо Ван Россуму, однако он не написал ничего. В коммьюнити Python пришли к выводу, что разработчик языка хотел этим сказать, что никакие правила не являются абсолютными и везде есть исключения.
Посмотреть Дзен, или же философию Python, можно с помощью импорта модуля
Тим Петерс ещё в далёком 1999 году предложил PEP 20, который должен был содержать в себе 20 правил по написанию кода. Но в итоге их оказалось всего 19.
Последний пункт он предложил написать Гвидо Ван Россуму, однако он не написал ничего. В коммьюнити Python пришли к выводу, что разработчик языка хотел этим сказать, что никакие правила не являются абсолютными и везде есть исключения.
Посмотреть Дзен, или же философию Python, можно с помощью импорта модуля
this
Форматирование строк
f-строки (сокращение от format string) – это новейший метод из поддерживаемых Python 3. Они похожи на метод
f-строки (сокращение от format string) – это новейший метод из поддерживаемых Python 3. Они похожи на метод
.format()
. Однако они предоставляют более ёмкий способ сделать то же самое, всего лишь добавив к строке букву f в качестве префикса.Проверка типа объекта
Функция
Если объект
Функция
isinstance()
вернет True
, если проверяемый объект object является экземпляром указанного класса или его подкласса.Если объект
object
не является экземпляром данного типа, то функция всегда возвращает False
.