Python Education
关闭频道
Обучаем Python как маленьких, так и взрослых Ссылка: @Portal_v_IT Сотрудничество: @oleginc, @tatiana_inc Канал на бирже: telega.in/c/python_educa РКН: clck.ru/3MnbNV
显示更多8 528
订阅者
-124 小时
-127 天
-7130 天
帖子存档
8 528
Defaultdict
Словарь представляет из себя неупорядоченный набор ключей и значений.
В парах ключ:значение ключи должны быть уникальны и неизменяемы. Поэтому список не может быть ключом словаря, так как он изменяемый.
8 528
Как создать namedtuple из словаря в Python
Вы заметили, как мы преобразовали словарь в именованный кортеж с помощью оператора ?
Все, что вам нужно сделать для этого — определить структуру namedtuple и передать словарь (dict) этому именованному кортежу в качестве аргумента. Единственное требование заключается в том, что ключи словаря должны совпадать с именами полей namedtuple.
8 528
Как работает метод lower()?
Метод lower() — это строковый метод, который возвращает новую строку полностью в нижнем регистре. Если исходная строка содержит прописные буквы, в новой строке они будут строчными. При этом любая строчная буква или любой символ, не являющийся буквой, не изменяется.
8 528
Counter
Объект counter предоставляется библиотекой collections. Давайте поподробнее разберем, что он собой представляет.
К примеру, у вас есть список каких-то случайных чисел. Что, если вы хотите узнать, сколько раз встречается каждое число?
Счетчик counter позволяет легко вычислить частоту. Он работает не только с числами, но и с любым итерируемыми объектами, такими как строки и списки.
8 528
Сортировка с помощью OrderedDict
Сортировка элементов, например, по возрастанию значений, может помочь в анализе данных. Давайте посмотрим, что мы можем сделать.
Сортировка элементов по ключу KEY (в порядке возрастания)
8 528
expandtabs
Метод expandtabs() возвращает копию строки, в которой все символы табуляции 't' заменены символами пробела до следующего кратного параметра tabsize. Рассмотрим пример. Позиция «t» равна 3, а первая позиция табуляции — 8. Следовательно, количество пробелов после «xyz» равно 5. Следующие позиции табуляции кратны размеру tabsize — 16, 24, 32 и так далее. Аналогично работает и с другими параметрами.
8 528
Регулярные выражения (REGEX)
Регулярные выражения — более гибкий способ нахождения подстрок в строках. В Python есть встроенный модуль, позволяющий работать с регулярными выражениями, — re. Модуль re содержит функцию search, которая позволит вам найти подстроку
Если вам нужны сложные сопоставления, например, учет регистра — этот метод подойдет вам лучше всего. Но у него есть и недостатки: сложность и скорость работы. То есть, в простеньких задачах его лучше не использовать.
8 528
Симметричная разность
Симметричная разность двух множеств A и B — это множество элементов, которые находятся либо в A, либо в B, но не находятся на их пересечении. Метод symmetricdifference() возвращает симметричную разницу двух наборов. Также ты можешь найти симметричную разность с помощью оператора
8 528
union
Объединение двух или более множеств — это множество всех различных элементов, присутствующих во всех множествах. Метод union() возвращает набор, содержащий все элементы из исходного набора и все элементы из указанных наборов. Если элемент присутствует более чем в одном наборе, результат будет содержать только один экземпляр этого элемента. Если аргумент не передается в union(), он возвращает поверхностную копию набора.
8 528
Преобразование даты
Метод datetime.strptime() используется для преобразования строки в объекты даты и времени, чтобы выполнять над ними нестроковые операции. Данный метод поддерживает множество кодов форматирования, таких как %Y для четырехзначного года и %m для двухзначного месяца. Эти плейсхолдеры также работают в обратном порядке, если тебе нужно представить объект даты и времени в строковом выводе и сделать его красивым.
8 528
«Сырые» строки и строковые литералы
Оперировать строками в Python – одно удовольствие, так как язык предоставляет для них множество удобных методов. Также имеется поддержка «сырых» строк и строковых литералов.
Чтобы строка стала «сырой», перед ней необходимо поставить символ r в любом регистре
8 528
symmetric difference update
Метод symmetric difference() возвращает новый набор, содержащий симметричную разность двух наборов. Метод symmetric difference update() обновляет набор с симметричной разницей наборов. Этот метод возвращает None, что указывает на отсутствие возвращаемого значения. Он только обновляет набор.
8 528
Format map
Метод format map() заменяет все ключи в строке значением. Это вернет новую строку со всеми сделанными заменами, если это возможно. У данного метода есть некоторые отличия от format. Метод format() косвенно выполняет замену. Сначала создает словарь отображения, а затем выполняет замену. В случае format map() замена выполняется напрямую с использованием словаря сопоставления. Так как format map() не создает новый словарь, это немного быстрее, чем format().
8 528
Collections.counter
Collections.counter – это метод отображения, который содержит целое число для каждого ключа. Обновление существующего ключа увеличивает его количество. Это можно использовать для подсчета экземпляров хешируемых объектов (ключей). Также можно использовать как мультимножество — набор, содержащий несколько экземпляров каждого элемента. В данном примере демонстрируется работа most common([n]), который возвращает упорядоченный список кортежей с n наиболее распространенными элементами и их количеством.
8 528
Функция ascii() в Python
Функция ascii() в Python возвращает строковое представление объекта. Эта функция внутренне вызывает функцию repr() и перед возвратом строки представления экранирует символы, отличные от ASCII, с помощью экранирования x, u или U.
Python ascii() является встроенной функцией и принимает единственный аргумент. Этот аргумент может быть любым примитивным типом данных или объектом. Мы также можем передать в качестве аргумента list, dict или tuple. В этих случаях метод ascii() будет вызываться для элементов коллекции, и будет возвращено строковое представление.
8 528
Транспонирование 2d-массива
Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip. Посмотрите пример кода ниже.
8 528
Как эффективно по отношению к памяти сравнить два неупорядоченных списка
Давайте предположим, что у вас есть два списка, которые содержат одинаковые элементы. Однако эти элементы стоят в разном порядке.
Два списка содержат одни и те же элементы, а вот их порядок отличается. Давайте посмотрим, как мы можем удостовериться, что перед нами два одинаковых списка.
• Мы можем использовать метод collections.Counter
• Можно использовать sorted(), если объекты поддаются порядку.
8 528
Вычисляем размер объектов в памяти
Чтобы вычислить размер какого-либо объекта, можно воспользоваться функцией sys.getsizeof(object[, default]). Поскольку Python написан в полном соответствии с парадигмой ООП, таким объектом может быть все что угодно.
Однако, следует помнить, что хотя все built-in (встроенные) объекты и вернут правильный размер, в общем случае это не должно быть верно для каких-либо пользовательских объектов.
Аргумент default позволяет определить значение, которое будет возвращено, если тип объекта не предоставляет средства для извлечения размера и вызовет TypeError .
Функция getsizeof вызывает метод sizeof объекта и добавляет дополнительные служебные данные сборщика мусора, если конечно объект управляется сборщиком мусора.
8 528
math.isclose
Метод math.isclose() проверяет, близки ли два значения друг к другу или нет. Возвращает True, если значения близки, иначе False. Близость двух значений определяется в соответствии с заданными абсолютными и относительными допусками. Относительная допуск — это максимально допустимая разница между двумя числами. Значение по умолчанию: 1e-09. Абсолютный допуск используется для сравнения значений, близких к 0. Значение должно быть не менее 0.
8 528
math.gcd
Метод math.gcd() возвращает наибольший общий делитель двух целых чисел. НОД — наибольший общий делитель, на который числа делятся без остатка. Когда оба числа равны 0, функция возвращает 0. Если любое число является символом, возникает TypeError.
