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

  • fireflame65

    fireflame65

    27 Mart 2007
  • Trevor Eckhart

    Trevor Eckha

    19 Aralık 2009
  • wwjoshdu

    wwjoshdu

    18 ŞUBAT 2011