Büyük koleksiyon kopyalama (ARCH2086)
Anahtar python.performance.large-collection-copy · Önem info · Kategori performance
Bir üreteci yalnızca üzerinde dolaşmak için list() ile tam materyalize etmek tüm öğeleri belleğe alır. Üreteç üzerinde doğrudan akış yapın.
Hatalı
Bölüm başlığı “Hatalı”def total_amount(rows): items = list(r.amount for r in rows) return sum(items)def total_amount(rows): return sum(r.amount for r in rows)Düzeltme
Bölüm başlığı “Düzeltme”Yalnızca dolaşılacak üreteçleri list() ile materyalize etmeyin; doğrudan akış yapın.