SORU
14 ŞUBAT 2011, PAZARTESİ


Ne zaman izip yerine zip kullanmak daha mı iyi?

itertools.izip yerine zip kullanmak daha mı iyi?

CEVAP
14 ŞUBAT 2011, PAZARTESİ


zip istenen tek seferde tüm listeyi, izip öğeleri hesaplar hesaplar.

Önemli bir fark olduğunu 'zip' verir gerçek bir liste, 'izip' döndürür 'izip nesne' olmayan bir liste ve desteklemiyor listesi-belirli özellikler (dizin):

>>> l1 = [1, 2, 3, 4, 5, 6]
>>> l2 = [2, 3, 4, 5, 6, 7]
>>> z = zip(l1, l2)
>>> iz = izip(l1, l2)
>>> isinstance(zip(l1, l2), list)
True
>>> isinstance(izip(l1, l2), list)
False
>>> z[::2] #Get odd places
[(1, 2), (3, 4), (5, 6)]
>>> iz[::2] #Same with izip
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'itertools.izip' object is unsubscriptable

Eğer bir liste (gibi liste nesne değil, bir ihtiyacın olursa, sadece kullanın ''. zip yani

Bunun dışında, '' hafıza veya devir tasarruf için yararlı olabilir. izip

E. g. aşağıdaki kodu kaç döngüden sonra çıkabilir, birlikte listesindeki tüm öğeleri hesaplamak için gerek yoktur:

lst_a = ... #list with very large number of items
lst_b = ... #list with very large number of items
#At each cycle, the next couple is provided
for a, b in izip(lst_a, lst_b):
    if a == b:
        break
print a

zip kullanılarak hesaplanan olurdutümDöngüsü girmeden önce (a, b) çiftler.

lst_a lst_b çok büyükse ayrıca, (örneğin, kayıtları milyonlarca), zip(a, b) çift boşluk ile üçüncü bir liste inşa edecek.

Ama eğer küçük bir liste varsa, belki zip daha hızlı.

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

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • AverageBroTV

    AverageBroTV

    20 Mart 2013
  • TeeMayneTV

    TeeMayneTV

    27 Kasım 2010
  • vgeller1

    vgeller1

    22 Kasım 2009