Этим утром хочу поделиться с вами некоторыми из фишек Python (изучил я их совсем недавно и не все успел применить), которые значительно облегчают разработку и делают код более чистым и эффективным.
1. Генераторы списков - это отличный способ быстро создавать списки на основе существующих данных, добавляя условия или преобразования. Например, я использую их для фильтрации данных или создания новых коллекций на основе имеющихся.
2. Генераторы - когда работаю с большими объемами данных, генераторы помогают экономить память, так как они создают элементы по одному по мере необходимости. Это особенно полезно при обработке больших файлов или потоков данных.
3. f-строки - форматирование строк стало намного проще и читаемее. Я использую f-строки для создания информативных сообщений, отчетов и логов.
4. Функции enumerate и zip - эти функции облегчают работу с циклами, позволяя одновременно получать индексы и элементы коллекций или объединять несколько последовательностей. Я часто использую их при обработке параллельных списков данных.
5. Классы данных (dataclasses) - упрощают создание классов для хранения данных, автоматически генерируя методы, такие как инициализаторы. Это экономит время и на практике делает код более чистым.
6. Использование Pathlib для работы с путями – объектно-ориентированный подход к работе с файловыми путями делает код более интуитивным и кроссплатформенным. Я применяю Pathlib для манипуляций с файлами и каталогами в своих проектах, чтобы собранными в .exe путь к ассетам был корректным и т.д.
Надеюсь, кому-то эта заметка покажется полезной и вы захотите узнать что-то новое!
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())
Надеюсь, кому-то эта заметка покажется полезной и вы захотите узнать что-то новое!