Python 3
for f, b in zip(foo, bar):
print(f, b)
zipkısaldığında durur fooveya bardurur.
In Python 3 , zip
gibi dizilerini bir yineleyici döndürür itertools.izipPython2 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 foove bariyi 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.izipveya
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)
izipya fooda barbittiğinde durur .
izip_longesther ikisi de durur foove bitince bar. Daha kısa yineleyiciler tükendiğinde, bu yineleyiciye karşılık gelen konumda izip_longestbir tuple verir None. Ayrıca farklı bir ayarlayabilirsiniz fillvalueyanında Nonedilerseniz. Hikayenin tamamı için buraya bakın .
Ayrıca zipve zipbenzeri 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 ?