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

Python  —  “самый мощный язык, который при этом можно читать”,  —  Пол Дюбуа.

Представляем 15 полезных приемов, которые пригодятся в решении повседневных проблем.

1. Наиболее частый элемент в списке

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

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

lst = [1, 4, 4, 4, 2, 5, 6, 6, 7, 8, 9, 10]

frequent = max(set(lst), key=lst.count)
print(frequent) # 4

2. Подсчет количества элементов

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

# Импортируйте модуль
from collections import Counter

lst= [1, 2, 1, 3, 4, 1, 4, 3, 5, 9, 9, 10]
occurrences = Counter(lst)
print(occurrences) # Counter({1: 3, 3: 2, 4: 2, 9: 2, 2: 1, 5: 1, 10: 1})

3. Повторение элемента в списке

Чтобы увеличить количество строк, можно использовать звездочку *. Но этот лайфхак применим и к спискам.

# Повторение элемента
lst1 = [5] * 3
lst2 = [4, 5] * 2
lst3 = ["Python", 6] * 3

print(lst1) # [5, 5, 5]
print(lst2) # [4, 5, 4, 5]
print(lst3) #['Python', 6, 'Python', 6, 'Python', 6]

4. Списковое включение (быстрый способ)

Списковое включение  —  самый эффективный способ итерации любого списка. Это итерирование однострочного списка с включением в него цикла. Посмотрите приведенный ниже пример кода, чтобы понять, как это работает.

# Обычный способ
num = [1, 2, 3, 4, 5, 6, 7, 8, 9]
even = []

for x in num:
    if x % 2 == 0:
        even.append(x)

print(even) # [2, 4, 6, 8]

# Списковое включение

even = [e for e in num if e % 2==0]
print(even) # [2, 4, 6, 8]

5. Преобразование изменяемых данных в неизменяемые

Изменяемые данные (например, словари или списки)  —  это структуры, к которым могут быть добавлены новые значения.

Неизменяемые данные, в противоположность изменяемым, после создания остаются неизменными. Посмотрите, как можно преобразовать изменяемый тип данных в неизменяемый.

lst = [1, 2, 3] # Изменяемый список 

newlist= frozenset(lst)
newlist.append(4) # Ошибка, теперь это изменить нельзя

6. Функция в одну строку

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

Addition = lambda x, y, z : x + y + z

print(Addition(20, 40, 50)) # 110

7. Применение функции ко всем элементам в списке

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

lst = ["python", "javaScript", "c++"]

lst = map(str.capitalize, lst)
print(list(lst)) # ['Python', 'Javascript', 'C++']

8. Возврат нескольких значений из функции

Знаете ли вы, что можно осуществлять возврат нескольких значений из функции? Вот как это сделать. Ознакомьтесь с приведенным ниже примером кода.

def function():
    return 10, 20, 30

print(function()) # (10, 20, 30)

9. Расчет времени выполнения

Этот простейший “трюк” поможет рассчитать время, необходимое для выполнения программы. Используя time-модуль, вы можете точно узнать, сколько времени требуется программе для выполнения кода.

import time

def fun():
    for x in range(1000):
        print(x)

start = time.time()

fun()

end = time.time()

total = end - start
print("Program takes ", total) # 0.24

10. Распечатывание ежемесячного календаря

А этот лайфхак  —  всего лишь скрытая функция Python, которая позволяет распечатывать ежемесячный календарь в формате таблицы.

import calendar
yy = 2021
mm = 7

# Отобразить календарь
print(calendar.month(yy, mm))

# На выходе
July 2021
Mo Tu We Th Fr Sa Su
          1  2  3  4
 5  6  7  8  9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31

11. Обратный список и строка

Скорее всего, вы используете обратную функцию для инверсионной записи списков или строк. Но знаете ли вы, как осуществить инверсию более эффективным способом?

lst = [1, 2, 3 ,4]
string= "Python Coder"

print(lst[::-1]) # [4, 3, 2, 1]
print(string[::-1]) # redoC nohtyP

12. Транспонирование 2d-массива

Этот лайфхак покажет, как выполнить транспонирование 2d-массива с помощью метода zip. Посмотрите пример кода ниже.

my_list = [[1, 2], [3, 4], [5, 6]]
transpose = zip(*my_list)

print(list(transpose)) #[(1, 3, 5), (2, 4, 6)]

Как проходит транспонирование:
# [1, 2]         [1, 3, 5]
# [3, 4]    =    [2, 4, 6]
# [5, 6]

13. Get Method для словаря

Большинство разработчиков используют скобки, чтобы получить значение из словаря. Но сейчас рекомендуется использовать Get method.

При использовании метода скобок выдается ошибка, если ключ отсутствует. С помощью Get method вы получите “None” .

my_dict = {'a': 1, 'b':2}

# Скобки
print(my_dict['c']) # Error (Ошибка)

# Get method
print(my_dict.get('c')) # None

14. Превращение списка в одну строку

Представьте, что у вас есть список строк, и вы хотите объединить все элементы в одну строку. Для этого вы наверняка будете перебирать каждый элемент в списке и присоединять к нему следующий.

Но есть более быстрый и эффективный способ выполнения той же задачи с помощью одной строки кода.

my_list = ["Python", "is", "a", "good", "Programming", "language"]

# Старый способ

string = ""
for x in my_list:
    string=string + x + " 

"print(string) # Python - хороший язык программирования

# Новый способ

print(" ".join(my_list) # Python - хороший язык программирования

15. Обработка ошибок во время выполнения

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

try:
    # Какое-либо действие
    
except:
    # Какое-либо действие на случай, если появляется ошибка

Заключение

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

Читайте также:

Читайте нас в Telegram, VK и Яндекс.Дзен


Перевод статьи Haider Imtiaz: Top Python Shortcuts

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