Этим утром хочу поделиться с вами некоторыми из фишек Python (изучил я их совсем недавно и не все успел применить), которые значительно облегчают разработку и делают код более чистым и эффективным.



1. Генераторы списков - это отличный способ быстро создавать списки на основе существующих данных, добавляя условия или преобразования. Например, я использую их для фильтрации данных или создания новых коллекций на основе имеющихся.

# Создание списка квадратов чисел от 0 до 9

squares = [x**2 for x in range(10)]




2. Генераторы - когда работаю с большими объемами данных, генераторы помогают экономить память, так как они создают элементы по одному по мере необходимости. Это особенно полезно при обработке больших файлов или потоков данных.

def my_generator(n):

for i in range(n):

yield i



gen = my_generator(10)




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

name = "Алиса"

age = 30

print(f"Меня зовут {name} и мне {age} лет.")




4. Функции enumerate и zip - эти функции облегчают работу с циклами, позволяя одновременно получать индексы и элементы коллекций или объединять несколько последовательностей. Я часто использую их при обработке параллельных списков данных.

# Использование enumerate

for index, value in enumerate(['a', 'b', 'c']):

print(index, value)



# Использование zip

for x, y in zip([1, 2, 3], ['a', 'b', 'c']):

print(x, y)




5. Классы данных (dataclasses) - упрощают создание классов для хранения данных, автоматически генерируя методы, такие как инициализаторы. Это экономит время и на практике делает код более чистым.

from dataclasses import dataclass



@dataclass

class Point:

x: int

y: int



p = Point(1, 2)

print(p)




6. Использование Pathlib для работы с путями – объектно-ориентированный подход к работе с файловыми путями делает код более интуитивным и кроссплатформенным. Я применяю Pathlib для манипуляций с файлами и каталогами в своих проектах, чтобы собранными в .exe путь к ассетам был корректным и т.д.



from pathlib import Path



p = Path('some_directory') / 'file.txt'

if p.exists():

print(p.read_text())




Надеюсь, кому-то эта заметка покажется полезной и вы захотите узнать что-то новое!