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

  • BMG Rentals Property Management

    BMG Rentals

    23 Mayıs 2011
  • Kyler Briskey

    Kyler Briske

    20 ŞUBAT 2011
  • Peter Sharp

    Peter Sharp

    11 ŞUBAT 2013