Memindahkan Senarai Senarai
Diberikan senarai senarai, seperti:
l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Matlamat kami ialah untuk menukar senarai, menghasilkan:
r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Menggunakan zip
Fungsi zip() dalam Python menggabungkan elemen daripada berbilang iterable ke dalam satu senarai tupel. Kita boleh menggunakan zip untuk mencipta senarai alih dengan menghantar senarai asal sebagai jujukan hujah:
result = list(map(list, zip(*l)))
Senarai luar() menukar tupel kepada senarai, dan fungsi map() menggunakan transformasi ini kepada setiap elemen dalam hasil zip.
Menggunakan zip_longest
The Fungsi itertools.zip_longest() adalah serupa dengan zip, tetapi ia tidak membuang data jika iterables mempunyai panjang yang berbeza. Ia mengisi iterable yang lebih pendek dengan nilai isian yang ditentukan (Tiada secara lalai):
from itertools import zip_longest result = list(map(list, zip_longest(*l, fillvalue=None)))
Penjelasan
Kunci kepada transposisi ialah penggunaan zip untuk menggabungkan elemen daripada subsenarai senarai asal. Fungsi zip() menjana tupel yang mengandungi satu elemen daripada setiap subsenarai pada indeks yang sama. Tuple ini kemudiannya ditukar kepada senarai untuk mencipta baris senarai yang ditranspose.
Dengan menggunakan operator * untuk membongkar senarai asal sebagai hujah ke zip, kami boleh menukar senarai dalam satu baris kod. Fungsi map() digunakan untuk memastikan bahawa hasilnya ialah senarai senarai.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Memindahkan Senarai Senarai dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!