Разъяснено на примерах

Python - это язык, к которому обращаются люди, работающие в экосистеме науки о данных. Есть несколько причин, по которым Python является преобладающим выбором в этой области, например, легкая в освоении структура, простой синтаксис и богатый выбор сторонних библиотек.

Что мне больше всего нравится в Python, так это то, как он упрощает определенные задачи. В этой статье я поделюсь 3 советами или хитростями, которые считаю весьма практичными. Я использовал их в своей работе, и я думаю, что вы также можете найти их полезными.

Я хотел бы подчеркнуть, что эти уловки не являются некоторыми продвинутыми функциями Python. По сути, их можно рассматривать как базовые операции. Однако они пригодятся для определенных задач.

1. Строковая интерполяция

Первый касается интерполяции строк, которая позволяет манипулировать строками с помощью имен переменных. Мы часто используем их с функцией печати для отладки кода или подтверждения результатов.

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

Модуль datetime Python возвращает месяцы и дни без начальных нулей, поэтому некоторые значения отображаются с одной цифрой.

from datetime import datetime
mydate = datetime(2020, 4, 2, 16, 40)
print(mydate)
2020-04-02 16:40:00
mydate.month
4
mydate.day
2

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

Давайте сначала создадим несколько путей к файлам без стандартизации цифр месяца и года.

# one digit month and day
mydate = datetime(2020, 4, 2)
file_path = f"Results_{mydate.year}{mydate.month}{mydate.day}"
print(file_path)
Results_202042
# two-digit month and day
mydate2 = datetime(2020, 11, 24)
file_path = f"Results_{mydate2.year}{mydate2.month}{mydate2.day}"
print(file_path)
Results_20201124

Как видно из распечатанных путей к файлам, они имеют нестандартный формат. К счастью, довольно просто добавить начальные нули к именам переменных, используемых в строке.

mydate = datetime(2020, 4, 2)
file_path = f"Results_{mydate.year}{mydate.month:02}{mydate.day:02}"
print(file_path)
Results_20200402

В нашем случае «02» означает, что соответствующая переменная будет занимать две цифры, а ведущий символ станет нулем. Если месяц или день содержат две цифры, Python не будет добавлять начальный ноль, потому что переменная уже занимает две цифры. Таким образом, мы будем придерживаться стандарта.

Функция счетчика

Следующая функция - это функция Counter в модуле коллекций Python. Это подкласс словаря, который используется для подсчета хешируемых объектов. Counter возвращает словарь, в котором элементы хранятся как ключи, а счетчики - как значения.

Давайте сначала рассмотрим пример из списка.

from collections import Counter
list_a = [1, 2, 3, 3, 3, 5, 5]
Counter(list_a)
Counter({1: 1, 2: 1, 3: 3, 5: 2})

Списки Python также имеют метод подсчета, но его можно использовать только для подсчета вхождений одного элемента.

list_a.count(3)
3

Функция счетчика также может использоваться для подсчета количества вхождений символов в строку.

mystring = "aaaabbcbbbcbbcccaaaa"
Counter(mystring)
Counter({'a': 8, 'b': 7, 'c': 5})

Мы также можем подсчитать количество слов и их частоту в тексте. Вот простой пример.

mytext = "Python python data science Data Science data"
Counter(mytext.lower().split(" "))
Counter({'data': 3, 'python': 2, 'science': 2})

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

Сортировка списка

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

Рассмотрим более сложный случай. У нас есть список, который содержит другие списки в качестве своих элементов. Например, у нас может быть список членов, и каждый элемент может представлять некоторую информацию о них, такую ​​как имя, фамилия и возраст.

members = [["John", "Doe", 28], 
           ["Betsy", "Ash", 32], 
           ["Megan", "Sam", 44]]

Мы можем отсортировать участников по имени, фамилии или возрасту. Python допускает такую ​​настраиваемую сортировку с помощью ключевого параметра функции сортировки.

Следующий код сортирует список членов по фамилии.

members.sort(key = lambda inner: inner[1])
members
[['Betsy', 'Ash', 32], 
 ['John', 'Doe', 28], 
 ['Megan', 'Sam', 44]]

Мы используем индекс элементов вложенных списков. Например, «inner [2]» сортирует список по возрасту.

members.sort(key = lambda inner: inner[2])
members
[['John', 'Doe', 28], 
 ['Betsy', 'Ash', 32], 
 ['Megan', 'Sam', 44]]

Заключение

Мы рассмотрели 3 простых, но полезных трюка с Python. Возможно, вам не всегда нужно их использовать, но в некоторых случаях эти уловки решают проблему эффективно. Удивительно, как Python предоставляет простые и интуитивно понятные способы для различных случаев. Три примера в этой статье можно считать очень небольшой частью простоты Python.

Спасибо за чтение. Пожалуйста, дайте мне знать, если у вас есть какие-либо отзывы.