Списки vs генераторы
❌ Список в памяти
def squares_list(n: int) -> list[int]:
result = []
for i in range(n):
result.append(i * i)
return result
values = squares_list(1_000_000)
for value in values:
print(value)
✅ Генератор
def squares(n: int):
for i in range(n):
yield i * i
for value in squares(1_000_000):
print(value)
Ручной парсинг vs json
❌ Ручной разбор строки
text = '{"name": "Alice", "age": 25}'
pairs = text.strip("{}").split(",")
data = {}
for pair in pairs:
key, value = pair.split(":")
data[key.strip('"')] = value.strip('"')
✅ json
import json
data = json.loads(text)
Строки дат vs datetime
❌ Манипуляции со строкой
date_text = "15-06-2025"
day, month, year = date_text.split("-")
if int(month) > 6:
print("Второе полугодие")
✅ datetime
from datetime import datetime
dt = datetime.strptime(date_text, "%d-%m-%Y")
if dt.month > 6:
print("Второе полугодие")
Проверить по документации: современный Python рекомендует использовать
pathlib вместо строковых путей и tomllib (Python 3.11+) для конфигурационных файлов вместо ручного парсинга.