popleft/appendleft
Наиболее важное различие между deque и list заключается в том, что первый позволяет выполнять эффективные операции добавления и извлечения на обоих концах последовательности. Класс deque реализует специальные методы .popleft() и .appendleft(), которые работают непосредственно с левым концом последовательности. Эти методы специфичны для deque, и ты не найдешь их в list.
#практика
Наиболее важное различие между deque и list заключается в том, что первый позволяет выполнять эффективные операции добавления и извлечения на обоих концах последовательности. Класс deque реализует специальные методы .popleft() и .appendleft(), которые работают непосредственно с левым концом последовательности. Эти методы специфичны для deque, и ты не найдешь их в list.
#практика
pop в deque
Как и list, deque также предоставляет методы .append() и .pop() для работы с правым концом последовательности. Однако .pop() ведет себя по-другому. Как видно в примере, .pop() удаляет и возвращает последнее значение в очереди. Метод не принимает индекс в качестве аргумента, поэтому ты не можешь использовать его для удаления произвольных элементов из ваших очередей. Ты можешь использовать его только для удаления и возврата самого правого элемента.
#практика
Как и list, deque также предоставляет методы .append() и .pop() для работы с правым концом последовательности. Однако .pop() ведет себя по-другому. Как видно в примере, .pop() удаляет и возвращает последнее значение в очереди. Метод не принимает индекс в качестве аргумента, поэтому ты не можешь использовать его для удаления произвольных элементов из ваших очередей. Ты можешь использовать его только для удаления и возврата самого правого элемента.
#практика
Defaultdict: группировка
Обычно тип Python defaultdict используется для группировки.В первом примере мы создаем defaultdict с именем dd и передаем список в .default factory. Обрати внимание, что даже если ключ не определен, тыможете добавлять к нему значения, не получая ошибки KeyError. Это связано с тем, что dd автоматически вызывает .default factory для создания значения по умолчанию для отсутствующего ключа. Ты можешь использовать defaultdict вместе со списком, чтобы сгруппировать элементы в последовательности или коллекции. Во втором примере создается defaultdict с именем dep dd и используется цикл for для перебора списка dep. Оператор dep dd[department].append(employee) создает ключи для отделов, инициализирует их пустым списком, а затем добавляет сотрудников к каждому отделу.
#практика
Обычно тип Python defaultdict используется для группировки.В первом примере мы создаем defaultdict с именем dd и передаем список в .default factory. Обрати внимание, что даже если ключ не определен, тыможете добавлять к нему значения, не получая ошибки KeyError. Это связано с тем, что dd автоматически вызывает .default factory для создания значения по умолчанию для отсутствующего ключа. Ты можешь использовать defaultdict вместе со списком, чтобы сгруппировать элементы в последовательности или коллекции. Во втором примере создается defaultdict с именем dep dd и используется цикл for для перебора списка dep. Оператор dep dd[department].append(employee) создает ключи для отделов, инициализирует их пустым списком, а затем добавляет сотрудников к каждому отделу.
#практика
Преобразование текста в речь
В Python доступно несколько API для преобразования текста в речь. Одним из таких API является Google Text to Speech API, широко известный как gTTS API. gTTS — это очень простой в использовании инструмент, который преобразует введенный текст в звук. Его можно сохранить в виде файла mp3.
#практика
В Python доступно несколько API для преобразования текста в речь. Одним из таких API является Google Text to Speech API, широко известный как gTTS API. gTTS — это очень простой в использовании инструмент, который преобразует введенный текст в звук. Его можно сохранить в виде файла mp3.
#практика
deque против list
deque делает добавление и извлечение элементов из любого конца легкими и эффективными операциями. Все благодаря тому, что нужно обновлять только указатели. Эти операции также предсказуемы с точки зрения производительности, потому что нет необходимости перераспределять память и перемещать существующие элементы для приема новых. Добавление и извлечение элементов из левого конца обычного списка требует сдвига всех элементов. Кроме того, добавление элементов в правый конец списка часто требует, чтобы Python перераспределял память и копировал текущие элементы в новое место в памяти. После этого он может добавлять новые элементы. Данный код демонстрирует разницу во времени между deque и list.
#практика
deque делает добавление и извлечение элементов из любого конца легкими и эффективными операциями. Все благодаря тому, что нужно обновлять только указатели. Эти операции также предсказуемы с точки зрения производительности, потому что нет необходимости перераспределять память и перемещать существующие элементы для приема новых. Добавление и извлечение элементов из левого конца обычного списка требует сдвига всех элементов. Кроме того, добавление элементов в правый конец списка часто требует, чтобы Python перераспределял память и копировал текущие элементы в новое место в памяти. После этого он может добавлять новые элементы. Данный код демонстрирует разницу во времени между deque и list.
#практика
Обмен данными между потоками
deque также полезен, когда ты кодируешь многопоточные приложения. Ты можешь безопасно добавлять и удалять данные с обоих концов потока одновременно из отдельных потоков без риска повреждения данных или других связанных с этим проблем. В данном примере product() принимает queue и size в качестве аргументов. Затем он использует random.randint() в цикле while для непрерывного создания случайных чисел и сохранения их в глобальном deque с именем shared queue. Вспомогательная функция wait seconds()возвращает случайное значение времени ожидания между заданным диапазоном секунд, mins и maxs. В Consume() ты вызываешь .popleft() внутри цикла для систематического извлечения и удаления данных из shared queue. Затем обворачиваешь вызов .popleft() в try except, чтобы обрабатывать те случаи, когда общая очередь пуста. Последние две строки в сценарии создают и запускают отдельные потоки для одновременного выполнения функций produce() и consume().
#практика
deque также полезен, когда ты кодируешь многопоточные приложения. Ты можешь безопасно добавлять и удалять данные с обоих концов потока одновременно из отдельных потоков без риска повреждения данных или других связанных с этим проблем. В данном примере product() принимает queue и size в качестве аргументов. Затем он использует random.randint() в цикле while для непрерывного создания случайных чисел и сохранения их в глобальном deque с именем shared queue. Вспомогательная функция wait seconds()возвращает случайное значение времени ожидания между заданным диапазоном секунд, mins и maxs. В Consume() ты вызываешь .popleft() внутри цикла для систематического извлечения и удаления данных из shared queue. Затем обворачиваешь вызов .popleft() в try except, чтобы обрабатывать те случаи, когда общая очередь пуста. Последние две строки в сценарии создают и запускают отдельные потоки для одновременного выполнения функций produce() и consume().
#практика
time.sleep
Функция time.sleep используется для добавления задержки в выполнение программы. Ты можешь использовать эту функцию, чтобы остановить выполнение программы на заданное время в секундах. Обрати внимание, time.sleep фактически останавливает выполнение только текущего потока, а не всей программы.
#практика
Функция time.sleep используется для добавления задержки в выполнение программы. Ты можешь использовать эту функцию, чтобы остановить выполнение программы на заданное время в секундах. Обрати внимание, time.sleep фактически останавливает выполнение только текущего потока, а не всей программы.
#практика
Создание изображений
Ты можешь создавать изображения с нуля, используя NumPy и Pillow. В данном примере мы создаем три изображения. Они создаются из каждого массива NumPy и в режим «L», который представляет оттенки серого. Теперь ты можешь объединить эти три отдельных изображения в одно изображение RGB, используя Image.merge(). Первый аргумент в Image.merge() — это режим вывода изображения. Второй аргумент — это последовательность с отдельными одноканальными изображениями.
#практика
Ты можешь создавать изображения с нуля, используя NumPy и Pillow. В данном примере мы создаем три изображения. Они создаются из каждого массива NumPy и в режим «L», который представляет оттенки серого. Теперь ты можешь объединить эти три отдельных изображения в одно изображение RGB, используя Image.merge(). Первый аргумент в Image.merge() — это режим вывода изображения. Второй аргумент — это последовательность с отдельными одноканальными изображениями.
#практика
Вычисления с дробями
Вычисления с дробями не часто встречаются в программах, но бывают ситуации, когда их использование необходимо. Например, выполнение вычислений с ними может избавить пользователя от необходимости вручную выполнять преобразования в десятичные или дробные числа. Модуль fractions можно использовать для выполнения математических расчетов с использованием дробей.
#практика
Вычисления с дробями не часто встречаются в программах, но бывают ситуации, когда их использование необходимо. Например, выполнение вычислений с ними может избавить пользователя от необходимости вручную выполнять преобразования в десятичные или дробные числа. Модуль fractions можно использовать для выполнения математических расчетов с использованием дробей.
#практика
Создание анимации
В этом примере мы создаем анимацию, показывающую, как три квадрата сливаются в один белый квадрат. Создается несколько версий изображений, содержащих три квадрата. Расположение квадратов будет немного отличаться между последовательными изображениями. В конце мы сохраняем анимацию в файл, после чего ты можешь открыть файл GIF с помощью любого программного обеспечения для работы с изображениями.
#практика
В этом примере мы создаем анимацию, показывающую, как три квадрата сливаются в один белый квадрат. Создается несколько версий изображений, содержащих три квадрата. Расположение квадратов будет немного отличаться между последовательными изображениями. В конце мы сохраняем анимацию в файл, после чего ты можешь открыть файл GIF с помощью любого программного обеспечения для работы с изображениями.
#практика
👍1
expandtabs
Метод expandtabs() возвращает копию строки, в которой все символы табуляции 't' заменены символами пробела до следующего кратного параметра tabsize. Рассмотрим пример. Позиция «t» равна 3, а первая позиция табуляции — 8. Следовательно, количество пробелов после «xyz» равно 5. Следующие позиции табуляции кратны размеру tabsize — 16, 24, 32 и так далее. Аналогично работает и с другими параметрами.
#практика
Метод expandtabs() возвращает копию строки, в которой все символы табуляции 't' заменены символами пробела до следующего кратного параметра tabsize. Рассмотрим пример. Позиция «t» равна 3, а первая позиция табуляции — 8. Следовательно, количество пробелов после «xyz» равно 5. Следующие позиции табуляции кратны размеру tabsize — 16, 24, 32 и так далее. Аналогично работает и с другими параметрами.
#практика
isalnum
Метод isalnum() возвращает значение True, если все символы в строке являются буквами или цифрами. Если нет, возвращается False. В приведенном примере мы используем метод isalnum() с разными строками, чтобы проверить, является ли каждый символ в строке буквенно-цифровым.
#практика
Метод isalnum() возвращает значение True, если все символы в строке являются буквами или цифрами. Если нет, возвращается False. В приведенном примере мы используем метод isalnum() с разными строками, чтобы проверить, является ли каждый символ в строке буквенно-цифровым.
#практика
ljust/rjust
Функция ljust выравнивает строку по левому краю. Аналогично rjust выравнивает по правому краю. Они возвращают строку определенной ширины, созданную путем заполнения строки символом fillchar (по умолчанию это пробел). Строка никогда не усекается.
#практика
Функция ljust выравнивает строку по левому краю. Аналогично rjust выравнивает по правому краю. Они возвращают строку определенной ширины, созданную путем заполнения строки символом fillchar (по умолчанию это пробел). Строка никогда не усекается.
#практика
zfill
Метод zfill() возвращает копию строки с символами '0', дополненными слева. Параметр width определяет длину строки, возвращаемой функцией zfill(). Предположим, начальная длина строки равна 10, width - 15. В этом случае zfill() возвращает копию строки с пятью цифрами «0», заполненными слева. Если параметр width меньше длины строки, возвращается исходная строка.
#практика
Метод zfill() возвращает копию строки с символами '0', дополненными слева. Параметр width определяет длину строки, возвращаемой функцией zfill(). Предположим, начальная длина строки равна 10, width - 15. В этом случае zfill() возвращает копию строки с пятью цифрами «0», заполненными слева. Если параметр width меньше длины строки, возвращается исходная строка.
#практика
translate
Метод translate() использует таблицу перевода для замены/перевода символов в заданной строке в соответствии с таблицей сопоставления. Таблица перевода создается статическим методом maketrans(). В данном примере строка удаления ThirdString сбрасывает отображение a и b на None. Когда строка переводится с помощью translate(), a и b удаляются, а символ “c” заменяется на idef.
#практика
Метод translate() использует таблицу перевода для замены/перевода символов в заданной строке в соответствии с таблицей сопоставления. Таблица перевода создается статическим методом maketrans(). В данном примере строка удаления ThirdString сбрасывает отображение a и b на None. Когда строка переводится с помощью translate(), a и b удаляются, а символ “c” заменяется на idef.
#практика
😁1
Симметричная разность
Симметричная разность двух множеств A и B — это множество элементов, которые находятся либо в A, либо в B, но не находятся на их пересечении. Метод symmetricdifference() возвращает симметричную разницу двух наборов. Также ты можешь найти симметричную разность с помощью оператора ^.
#практика
Симметричная разность двух множеств A и B — это множество элементов, которые находятся либо в A, либо в B, но не находятся на их пересечении. Метод symmetricdifference() возвращает симметричную разницу двух наборов. Также ты можешь найти симметричную разность с помощью оператора ^.
#практика
union
Объединение двух или более множеств — это множество всех различных элементов, присутствующих во всех множествах. Метод union() возвращает набор, содержащий все элементы из исходного набора и все элементы из указанных наборов. Если элемент присутствует более чем в одном наборе, результат будет содержать только один экземпляр этого элемента. Если аргумент не передается в union(), он возвращает поверхностную копию набора.
#практика
Объединение двух или более множеств — это множество всех различных элементов, присутствующих во всех множествах. Метод union() возвращает набор, содержащий все элементы из исходного набора и все элементы из указанных наборов. Если элемент присутствует более чем в одном наборе, результат будет содержать только один экземпляр этого элемента. Если аргумент не передается в union(), он возвращает поверхностную копию набора.
#практика
gzip
gzip — это формат файлов и программное приложение, используемое для сжатия и распаковки файлов. Модуль gzip предоставляет простой способ работы с файлами gzip (.gz). В данном примере демонстрируется, как записать данные в сжатый файл и прочесть их.
#практика
gzip — это формат файлов и программное приложение, используемое для сжатия и распаковки файлов. Модуль gzip предоставляет простой способ работы с файлами gzip (.gz). В данном примере демонстрируется, как записать данные в сжатый файл и прочесть их.
#практика
Преобразование даты
Метод datetime.strptime() используется для преобразования строки в объекты даты и времени, чтобы выполнять над ними нестроковые операции. Данный метод поддерживает множество кодов форматирования, таких как %Y для четырехзначного года и %m для двухзначного месяца. Эти плейсхолдеры также работают в обратном порядке, если тебе нужно представить объект даты и времени в строковом выводе и сделать его красивым.
#практика
Метод datetime.strptime() используется для преобразования строки в объекты даты и времени, чтобы выполнять над ними нестроковые операции. Данный метод поддерживает множество кодов форматирования, таких как %Y для четырехзначного года и %m для двухзначного месяца. Эти плейсхолдеры также работают в обратном порядке, если тебе нужно представить объект даты и времени в строковом выводе и сделать его красивым.
#практика
isdisjoint
Метод isdisjoint() возвращает True, если у множеств нет общих элементов. В противном случае он возвращает False. Можно использовать список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в наборы, а затем проверяет, не пересекаются ли они.
#практика
Метод isdisjoint() возвращает True, если у множеств нет общих элементов. В противном случае он возвращает False. Можно использовать список, кортеж, словарь или строку. В этом случае isdisjoint() сначала преобразует итерации в наборы, а затем проверяет, не пересекаются ли они.
#практика
symmetric difference update
Метод symmetric difference() возвращает новый набор, содержащий симметричную разность двух наборов. Метод symmetric difference update() обновляет набор с симметричной разницей наборов. Этот метод возвращает None, что указывает на отсутствие возвращаемого значения. Он только обновляет набор.
#практика
Метод symmetric difference() возвращает новый набор, содержащий симметричную разность двух наборов. Метод symmetric difference update() обновляет набор с симметричной разницей наборов. Этот метод возвращает None, что указывает на отсутствие возвращаемого значения. Он только обновляет набор.
#практика
👍1