Cara mengompres dua daftar dengan python


Seringkali Anda mungkin tertarik untuk mengompresi (atau “menggabungkan”) dua daftar dengan Python. Untungnya, hal ini mudah dilakukan dengan menggunakan fungsi zip().

Tutorial ini menunjukkan beberapa contoh penggunaan praktis fungsi ini.

Contoh 1: Kompres dua daftar dengan panjang yang sama menjadi satu daftar

Sintaks berikut menunjukkan cara mengompresi dua daftar dengan panjang yang sama menjadi satu:

 #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)]

Contoh 2: Kompres dua daftar dengan panjang yang sama ke dalam kamus

Sintaks berikut menunjukkan cara mengompresi dua daftar dengan panjang yang sama ke dalam kamus:

 #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}

Contoh 3: Kompres dua daftar yang panjangnya tidak sama

Jika kedua daftar Anda memiliki panjang yang tidak sama, zip() akan dipotong sesuai panjang daftar yang lebih pendek:

 #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)]

Jika Anda ingin mencegah zip() terpotong hingga ke daftar terpendek, Anda dapat menggunakan fungsi zip_longest() dari pustaka itertools .

Secara default, fungsi ini mengisi “Tidak Ada” untuk nilai yang hilang:

 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)]

Namun, Anda dapat menggunakan argumen fillvalue untuk menentukan nilai pengisian yang berbeda untuk digunakan:

 #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)]

Anda dapat menemukan dokumentasi lengkap untuk fungsi zip_longest() di sini .

Tambahkan komentar

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *