Python 3
for f, b in zip(foo, bar):
print(f, b)
zipberhenti ketika lebih pendek fooatau barberhenti.
Dalam Python 3 , zip
mengembalikan iterator tupel, seperti itertools.izippada Python2. Untuk mendapatkan daftar tupel, gunakan list(zip(foo, bar)). Dan untuk zip sampai kedua iterator habis, Anda akan menggunakan
itertools.zip_longest .
Python 2
Dalam Python 2 , zip
mengembalikan daftar tupel. Ini bagus saat foodan bartidak masif. Jika keduanya masif maka pembentukan zip(foo,bar)adalah variabel sementara masif yang tidak perlu, dan harus diganti oleh itertools.izipatau
itertools.izip_longest, yang mengembalikan iterator dan bukan daftar.
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)
izipberhenti ketika salah satu fooatau barhabis.
izip_longestberhenti ketika keduanya foodan barkelelahan. Ketika iterator yang lebih pendek habis, izip_longesthasilkan tuple dengan Noneposisi yang sesuai dengan iterator itu. Anda juga dapat mengatur fillvalueselain selain Nonejika Anda inginkan. Lihat di sini untuk cerita selengkapnya .
Perhatikan juga bahwa zipdan saudara- zipsaudaranya yang seperti itu dapat menerima jumlah yang dapat diubah dari iterables sebagai argumen. Sebagai contoh,
for num, cheese, color in zip([1,2,3], ['manchego', 'stilton', 'brie'],
['red', 'blue', 'green']):
print('{} {} {}'.format(num, color, cheese))
cetakan
1 red manchego
2 blue stilton
3 green brie
izip(meskipunizip/zipterlihat jauh lebih bersih)?