Python tricks | Хитрости Питона
5.67K subscribers
2.21K photos
26 videos
1 file
2.52K links
Здесь вы найдете лучшие практики и приёмы, которые используют опытные программисты.

Сотрудничество: @SIeep_Token

Мы на платформе: https://telegram.me/python_tricks

Ссылка на канал: https://t.me/+QayZf6ccsQllZTYy
Download Telegram
#5
Применение itertools

Для выполнения продвинутой генерации списка в языке Python используется подключаемая библиотека под названием itertools. С ее помощью можно создавать наборы значений по определенным правилам.

Методы, которые содержит эта библиотека, позволяют генерировать списки с использованием улучшенных циклов. Например, с ее помощью можно легко создавать комбинации различных значений, как символьных, так и числовых.
Функция filter()

Функция filter() в Python используется для фильтрации элементов итерации. Эта функция возвращает объект фильтра, который является итератором.

Функция будет вызываться для итеративных элементов, и если она вернет True, то они будут частью возвращенного итератора.

Мы также можем передать функцию как None, в этом случае будут соблюдаться стандартные правила проверки истинности, чтобы определить, являются ли повторяющиеся элементы True или False.
Функция ord()

Функция ord() для символа x вернет число, из таблицы символов Unicode представляющее его позицию. Например, ord('a') возвращает целое число 97 и ord('€') вернет 8364.

Функция ord() обратная chr().

Для символа строки 8-бит возвращает значение байта. Если передан символов Unicode и Python собран с UCS2 Unicode, то позиция кода должна находиться в диапазоне от 0 до 65535 включительно, иначе возбуждается исключение TypeError.
Что выведет код?
Anonymous Quiz
23%
7
27%
1
43%
Error
6%
None
Функция chr()

Функция chr() вернет строку, представляющую символ, соответствующий переданному в качестве аргумента целому числу из таблицы символов Unicode. Например, chr(97) возвращает строку a, а chr(8364) возвращает строку €. Функция chr() - обратная функции ord().

Допустимый диапазон аргументов - от 0 до 1114111 (0x10FFFF в базе 16). Будет поднят ValueError, если x за пределами этого диапазона.

Если необходимо преобразовать символ в число из таблицы символов Unicode, то используйте функцию ord().
Что выведет код?
Anonymous Quiz
11%
True
71%
False
8%
None
10%
Error
itertools.takewhile

С
помощью функции takewhile() мы можем фильтровать элементы последовательности до тех пор, пока условие не станет True. Как только он становится True, он останавливает процесс фильтрации.
Функция sample()

Функция sample() модуля random возвращает список длины k случайных элементов, выбранных из последовательности или множества population. Исходная последовательность population остается неизменной.

Используется для случайной выборки без замены.

Элементы population не должны быть хешируемыми или уникальными. Если population содержит повторы, то каждый случай является возможным выбором в результирующем списке.
Что выведет код?
Anonymous Quiz
4%
8
17%
(8,7)
22%
()
57%
Error
Функция contextmanager()

Функция contextmanager() модуля contextlib представляет собой декоратор, который можно использовать для определения фабричной функции для оператора контекстных менеджеров with без необходимости создавать класс или отдельные методы enter() и exit().

Хотя многие объекты изначально поддерживают использование в операторах with, иногда необходимо управлять ресурсом, который сам по себе не является диспетчером контекста и не реализует метод close() для использования с функцией contextlib.closing().
Что выведет код?
Anonymous Quiz
29%
I LOVE PYTHON
60%
I Love Python
6%
None
5%
Error
Модуль mmap

Модуль mmap обеспечивает ввод и вывод файла с отображением памяти (I/O), что позволяет использовать функциональные возможности операционной системы более низкого уровня для чтения файлов.

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

В приведенном выше примере:

1)Сначала мы импортируем модуль mmap.

2)Затем определяем путь к файлу на диске.

3)Затем мы создаем объект file_object с помощью системного вызова open().

4)После получения объекта file мы создаем отображение файла в адресное пространство программы с помощью функции mmap.

5)Затем мы считываем данные из объекта mmap.

6)И распечатываем данные.
Что выведет код?
Anonymous Quiz
8%
[3]
9%
[8]
44%
[7]
39%
Error