SORU
25 Aralık 2008, PERŞEMBE


Jeneratör çıkış uzunluğu

Python olduğunu hevesli bir iterable, len(x) uzunluğu almak için güzel bir yöntem sağlar. Ama tembel iterables jeneratör kapsam ve işlevleri temsil ettiği için benzer bir şey bulamadım. Tabii ki, zor gibi bir şey yazmak mümkün değil

def iterlen(x):
  n = 0
  try:
    while True:
      next(x)
      n  = 1
  except StopIteration: pass
  return n

Ama bir bisiklet reimplementing olduğum bir duygudan kurtulamıyorum.

(Fonksiyon yazarak iken, bir düşünce aklımdan vurdu: belki de gerçekten "" argüman. işlevi yok, çünkü böyle bir yok Benim durum için bir konu olsa da).

P. S.: ilk cevapları ile ilgili - Evet len(list(x)) gibi bir şey çok işe yarardı, ama bu büyük ölçüde bellek kullanımı artıyor.

P. P. S.: tekrar kontrol ettik..., gayet iyi çalışıyor o çalışırken bir hata yaptım P. S., göz Ardı gibi görünüyor. Sorun için özür dilerim.

CEVAP
28 AĞUSTOS 2011, Pazar


En kolay yolu gen jeneratör nerede muhtemelen sum(1 for _ in gen).

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • backyardjay

    backyardjay

    8 ŞUBAT 2009
  • Chilla Frilla™

    Chilla Frill

    7 Aralık 2006
  • SoundHound

    SoundHound

    8 Mart 2006