SORU
6 EYLÜL 2008, CUMARTESİ


Vs Liste üreteci jeneratör İfadeler

Ne zaman Python jeneratör ifadeler vs liste üreteçleri kullanın ve tersi gerekir?

# Generator expression
(x*2 for x in range(256))

# List comprehension
[x*2 for x in range(256)]

CEVAP
6 EYLÜL 2008, CUMARTESİ


John cevabı iyi bir şey üzerinde birden çok kez tekrarlamak istediğiniz zaman daha iyidir). Ancak, eğer değer listesinde herhangi bir yöntem kullanmak istiyorsanız bir listesini kullanmanız gerektiğini kaydetti. Örneğin, aşağıdaki kod çalışmaz:

def gen():
    return (something for something in get_some_stuff())

print gen()[:2]     # generators don't support indexing or slicing
print [5,6]   gen() # generators can't be added to lists

Temel olarak, eğer yaptığın bir kez yinelenmesi ise, jeneratör bir ifade kullanın. Ve üretilen sonuçları saklamak için kullanmak istiyorsanız, o zaman muhtemelen bir liste anlayışı ile daha iyidir.

Bu yana performans, en yaygın nedeni seçim bir başka, benim tavsiyem değil, boş ver ve Seç birini; eğer bu program çok yavaş, ve ancak o zaman gerekir ve endişe ayarlama kodu.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Gimpology.com Video Tutorials

    Gimpology.co

    3 ŞUBAT 2008
  • iNCH

    iNCH

    20 Temmuz 2009
  • Ryan Billy

    Ryan Billy

    30 EKİM 2006