2016-09-07 4 views
1

Ich versuche, ein schlangenartiges Ergebnis (von links nach rechts, von oben nach unten) einer Reihe von Zeichen in Python 3 zu erhalten. Ich habe es geschafft, dies mit zip zu tun, ist der folgende Beispielcode :Schlange Ergebnis in Python

>>> abcd = ['a','b','c','d'] 
>>> i = iter(abcd) 
>>> t = zip(i,i) 
>>> for x in t: 
... print(x) 
... 
('a', 'b') 
('c', 'd') 
>>> for g in zip(abcd,abcd): 
... print(g) 
... 
('a', 'a') 
('b', 'b') 
('c', 'c') 
('d', 'd') 

Aber ich würde gerne verstehen, warum zip (ABCD, ABCD) das gleiche Ergebnis wie zip nicht zurück (i, i)?

Antwort

0

Zip ein Tupel mit zwei Liste machen, und ein Tupel machen (a, a) (b, b) (c, c) (d, d)

Iter() durchlaufen sie neben() verwendet somit Wenn Sie Iter() -Funktion verwenden, machen Sie Tupel von (a, b) (c, d)

+0

Ich nahm an, dass Zip eine Liste von Iterablen, nicht Iteratoren als Parameter, zumindest das ist mein Verständnis aus der Definition, def zip (* iterables) – alortimor