Python'da iki liste nasıl sıkıştırılır
Çoğu zaman Python’da iki listeyi sıkıştırmak (veya “birleştirmek”) ilginizi çekebilir. Neyse ki zip() işlevini kullanarak bunu yapmak kolaydır.
Bu eğitimde bu işlevin pratik kullanımına ilişkin birkaç örnek gösterilmektedir.
Örnek 1: Eşit uzunluktaki iki listeyi tek bir listeye sıkıştırın
Aşağıdaki sözdizimi, eşit uzunluktaki iki listenin nasıl tek bir listeye sıkıştırılacağını gösterir:
#define list a and list b a = ['a', 'b', 'c'] b = [1, 2, 3] #zip the two lists together into one list list( zip (a,b)) [('a', 1), ('b', 2), ('c', 3)]
Örnek 2: Eşit uzunluktaki iki listeyi bir sözlüğe sıkıştırın
Aşağıdaki sözdizimi, eşit uzunluktaki iki listenin bir sözlüğe nasıl sıkıştırılacağını gösterir:
#define list of keys and list of values keys = ['a', 'b', 'c'] values = [1, 2, 3] #zip the two lists together into one dictionary dict( zip (keys, values)) {'a': 1, 'b': 2, 'c': 3}
Örnek 3: Eşit olmayan uzunluktaki iki listeyi sıkıştırın
İki listenizin uzunlukları eşit değilse zip() daha kısa olan listenin uzunluğuna göre kısaltılacaktır:
#define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together into one list list( zip (a,b)) [('a', 1), ('b', 2), ('c', 3)]
Zip() fonksiyonunun en kısa listenin uzunluğuna kadar kesilmesini önlemek istiyorsanız, bunun yerine itertools kütüphanesindeki zip_longest() fonksiyonunu kullanabilirsiniz.
Varsayılan olarak bu işlev, eksik değerler için “Yok” seçeneğini doldurur:
from itertools import zip_longest #define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together without truncating to length of shortest list list( zip_longest (a, b)) [('a', 1), ('b', 2), ('c', 3), ('d', None)]
Ancak kullanılacak farklı bir doldurma değeri belirtmek için dolgu değeri bağımsız değişkenini kullanabilirsiniz:
#define list a and list b a = ['a', 'b', 'c', 'd'] b = [1, 2, 3] #zip the two lists together, using fill value of '0' list( zip_longest (a, b, fillvalue= 0 )) [('a', 1), ('b', 2), ('c', 3), ('d', 0)]
Zip_longest() işlevine ilişkin tüm belgeleri burada bulabilirsiniz.