Kullanımına Python sıfırlanabilir? | Netgez.com
SORU
16 Temmuz 2010, Cuma


Kullanımına Python sıfırlanabilir?

Python yineleyici / jeneratör sıfırlayabilir miyim? Ve dosyanın başlangıcına (csv modülü) sıfırlama ister DictReader kullanıyorum.

CEVAP
16 Temmuz 2010, Cuma


Ben birçok cevaplar için docs: önemli bir uyarı göz ardı itertools.tee ama düşündüren bakın

Bu itertool önemli gerektirebilir depolama (bağlı olarak ne kadar yardımcı çok geçici veri olması gerekir saklı). Bir yineleyici genel olarak, daha önce birçok veya tüm verileri kullanır başka bir yineleyici daha hızlı başlar, tee() yerine list() kullanmak için.

Temelde, tee İki (veya daha fazla) bir yineleyici klonlar bu durum için tasarlanmıştır, "senkronize" birbirleri ile, gelmeyinçok fazlabunun yerine aynı derler "" (bazı şeyleri geride ya birbirimizi önde). civarı Bu OP sorunu için uygun değildir "baştan yeniden".

Diğer yandan L = list(DictReader(...)) gayet uygun, dicts listesini rahatça belleğe sığabilecek kadar uzun. Yeni bir "yineleyici Başlat" (çok hafif ve düşük genel) yapılabilir herhangi bir zamanda iter(L) ve kullanılan kısmını ya da tamamını etkileyen olmadan yeni veya mevcut olanları; diğer erişim modelleri de kolayca kullanılabilir.

Bazı cevaplar haklı olarak söylediği gibi, csv özel durumda da .seek(0) temel dosya itiraz edebilirsiniz (çok özel bir durum). Emin değilim bu belgelenmiş ve garantili, ama şu anda iş; olur muhtemelen dikkate değer için gerçekten çok büyük csv dosyaları, hangi list ben recommmend olarak genel yaklaşım olurdu çok büyük bir bellek ayak izi.

Bunu PaylaÅŸ:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VÄ°DEO

Rastgele Yazarlar

  • ★ByScrapi★ Designs

    ★ByScrapiâ

    27 AÄžUSTOS 2013
  • Damien Walters

    Damien Walte

    20 AÄžUSTOS 2006
  • DudeFromUkraine

    DudeFromUkra

    7 Ocak 2008