5 полезных трюков Python, которые сэкономят время

🐍 Сегодня рассмотрим 5 полезных трюка в Python для повседневного кода: от f-строк до распаковки. Пишите меньше — делайте больше.
советы python

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

  1. enumerate() — номер и элемент за раз
  2. zip() — объединение списков
  3. List comprehension — списки в одну строку
  4. f-строки — форматирование без головной боли
  5. Распаковка (* и **) — гибкая работа с данными

Все примеры работают на Python 3.6+ и не требуют сторонних библиотек.

1. enumerate(): индекс + элемент без ручного счётчика

Часто нужно не только перебрать список, но и знать номер элемента. Вместо громоздкого for i in range(len(...)) используйте enumerate():

fruits = ["яблоко", "банан", "апельсин"]

# Плохо:
for i in range(len(fruits)):
    print(i, fruits[i])

# Хорошо:
for i, fruit in enumerate(fruits):
    print(i, fruit)

Плюсы:

  • Код короче и чище
  • Нет риска ошибиться в индексации
  • Можно задать начальное значение: enumerate(fruits, start=1)

Документация: enumerate()

2. zip(): параллельный перебор нескольких списков

Нужно объединить два (или больше) списка поэлементно? Используйте zip():

names = ["Анна", "Борис", "Вера"]
ages = [25, 30, 22]

for name, age in zip(names, ages):
    print(f"{name} — {age} лет")

Вывод:

Анна — 25 лет  
Борис — 30 лет  
Вера — 22 лет

Если списки разной длины, zip() остановится по самому короткому.
Для продолжения по самому длинному — используйте itertools.zip_longest.

Документация: zip()

3. List comprehension: создаём списки в одну строку

Вместо многострочного цикла для фильтрации или трансформации — используйте генераторы списков:

# Пример: возвести в квадрат числа от 1 до 5
numbers = [1, 2, 3, 4, 5]
squares = [x**2 for x in numbers]
print(squares)  # [1, 4, 9, 16, 25]

# С фильтрацией: только чётные
evens = [x for x in numbers if x % 2 == 0]
print(evens)  # [2, 4]

Преимущества:

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

Осторожно: не перегружайте — при сложной логике лучше использовать обычный for.

4. f-строки: форматирование без .format() и %

С Python 3.6 появились f-строки — самый удобный способ вставлять переменные в текст:

name = "Мария"
age = 28

# Старый способ:
print("Привет, {}! Вам {} лет.".format(name, age))

# Новый способ:
print(f"Привет, {name}! Вам {age} лет.")

Можно даже вычислять внутри строки:

price = 199
tax = 0.2
print(f"Итого: {price * (1 + tax):.2f} руб.")
# Вывод: Итого: 238.80 руб.

f-строки быстрее, читабельнее и безопаснее. Они стали стандартом в современном Python.

5. Распаковка: * и ** для гибкости

Python позволяет «распаковывать» списки и словари прямо в вызове функции или присваивании.

Распаковка списков (*)

parts = ["Иван", "ivan@example.com", 35]
name, email, age = parts  # обычное присваивание

# А если элементов больше?
data = ["Ольга", "olga@test.ru", 29, "Москва", "инженер"]

# Берём первые два, остальное — в «остаток»:
first, second, *rest = data
print(first)   # Ольга
print(rest)    # ['29', 'Москва', 'инженер']

Распаковка словарей (**)

def greet(name, age):
    print(f"Здравствуйте, {name}! Вам {age} лет.")

user = {"name": "Алексей", "age": 40}
greet(**user)  # распаковка словаря → greet(name="Алексей", age=40)

Практическое применение:

  • Передача аргументов в функции
  • Объединение словарей: {**dict1, **dict2}
  • Гибкая обработка неизвестного числа параметров

Заключение

Эти пять трюков — не «магия», а стандартные возможности Python, которые делают код:

  • Короче
  • Быстрее
  • Читабельнее
  • Меньше подверженным ошибкам

Начните использовать хотя бы один из них уже сегодня — и вы сразу почувствуете разницу.
А когда освоите все — писать на Python станет ещё приятнее.

Если что-то осталось непонятным — пишите в комментариях! С радостью уточню, дополню или помогу с вашим кодом.

А чтобы не пропустить новые простые и полезные гайды по Python, автоматизации и разработке — подписывайтесь на мой Telegram-канал 🐍✨

Ваш интерес — лучшая мотивация для новых статей!

Оставьте комментарий