2016-03-23 26 views
2

Bunun çok basit bir soru olduğunu ve web'i yanıtlar için kontrol ettim, ancak hiçbiri gelmedi.Python'da zip() işlevini alamıyorum

Python 3.5'ı öğreniyorum ve Anaconda'yı yükledim. Ben hakkında bilgi edinmek ve yerleşik fonksiyon zip() kullanmaya çalışıyorum ama (Jüpiter'im defterime) gibi bir şey

a = [1,2,3] 
b = [4,5,6] 
zip(a,b) 

yazarken ben XXXXX bazı (rastgele) kümesidir çıkış olarak <zip at 0xXXXXX> olsun karakterlerin Çıktı olarak

[[1,4],[2,5],[3,6]] 

bekliyordum. Yanlış bir şey mi var yoksa beklentilerim yanlış mı?

Şimdiden teşekkürler! 3 zip sıkıştırılmış değerler üzerinden bir yineleyici döndürür python'da

cevap

4

kullanın:

for x, y in zip(a, b): 
    print(x, y) 
4

piton 3'te neredeyse her zaman operasyonlardan bir jeneratör nesne olsun böyle zip veya range olarak.

Bu, daha fazla bellek ek yükü üretmez, çünkü büyük bir yinelenebilir oluşturulmadığından, gerekli tüm değerler elde edilir.

Listeyi almak isterseniz, jeneratörde list numaralı telefonu arayın.

>>> l = [list(t) for t in zip([1, 2, 3], [4, 5, 6])] 
: Eğer listelerinin bir listesini almak bir liste anlama kullanmak istiyorsanız

>>> l 
[(1, 4), (2, 5), (3, 6)] 

:

>>> l = list(zip([1, 2, 3], [4, 5, 6])) 

Ancak bu size tüp listeleriniz verecektir