Python 3
for f, b in zip(foo, bar):
print(f, b)
zip
kısaldığında durur foo
veya bar
durur.
In Python 3 , zip
gibi dizilerini bir yineleyici döndürür itertools.izip
Python2 içinde. Bir tuples listesi almak için tuşunu kullanın list(zip(foo, bar))
. Her iki yineleyici de bitene kadar zip yapmak için itertools.zip_longest komutunu kullanabilirsiniz
.
Python 2
In Python 2 , zip
dizilerini bir listesini döndürür. Büyük olduğunda foo
ve bar
iyi olmadığında bu iyidir . Her ikisi de büyükse, biçimlendirme zip(foo,bar)
gereksiz yere büyük bir geçici değişkendir ve yerine bir liste yerine bir yineleyici döndüren itertools.izip
veya
ile değiştirilmelidir itertools.izip_longest
.
import itertools
for f,b in itertools.izip(foo,bar):
print(f,b)
for f,b in itertools.izip_longest(foo,bar):
print(f,b)
izip
ya foo
da bar
bittiğinde durur .
izip_longest
her ikisi de durur foo
ve bitince bar
. Daha kısa yineleyiciler tükendiğinde, bu yineleyiciye karşılık gelen konumda izip_longest
bir tuple verir None
. Ayrıca farklı bir ayarlayabilirsiniz fillvalue
yanında None
dilerseniz. Hikayenin tamamı için buraya bakın .
Ayrıca zip
ve zip
benzeri kardeşin isteğe bağlı olarak yinelenebilir sayıda argüman olarak kabul edebileceğini unutmayın. Örneğin,
for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'],
['red', 'blue', 'green']):
print('{} {} {}'.format(num, color, cheese))
baskılar
1 red manchego
2 blue stilton
3 green brie
izip
(izip
/zip
çok daha temiz görünse bile) tercih etmeliyim ?