TGViewer
Python Portal Python Portal @pythonportal · 50.3K subscribers
Post #5814 5.56K
Python-совет: как писать код с эффективным использованием памяти
Это проблемный код:

def generate_transactions_inefficient(df: pd.DataFrame):

transactions = []

for _, row in df.iterrows():
transactions.append({
'user_id': row['user_id'],
'amount': row['amount'],
'transaction_date': row['transaction_date'],
'status': row['status']
})

return transactions


Проблема в том, что такой подход сохраняет ВСЕ обработанные строки в памяти перед тем, как что-либо вернуть. Это как приготовить 10 000 блюд и хранить их все на кухне — место быстро закончится.

👉Лучший подход — использовать yield:
def generate_transactions_efficient(df: pd.DataFrame):

for _, row in df.iterrows():
yield {
'user_id': row['user_id'],
'amount': row['amount'],
'transaction_date': row['transaction_date'],
'status': row['status']
}


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

👉 @PythonPortal
  • ❤ 22
More from @pythonportal
  1. Oct 5, 2026DeepSeek выложила в открытый доступ библиотеку, которая ускоряет вычисления на GPU, лежащи…
  2. Oct 4, 2026Modern Robotics: Mechanics, Planning, and Control. Сохраните на потом. Это полноценный уче…
  3. Oct 4, 2026«Изучение математики. Почему память, практика и техника важнее таланта» Чтобы освоить мате…
  4. Oct 3, 2026«Как обучить нейросеть» — краткий конспект лекций курса MIT по глубокому обучению за 2024…
  5. Oct 3, 2026Tencent выпустила новую модель для перевода, которая, по их словам, обходит Google Transla…
  6. Oct 2, 2026Один из лучших ресурсов по производительности SQL: use-the-index-luke.com 👉 @PythonPortal
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →