Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Memindahkan Senarai Senarai dalam Python?

Bagaimanakah Saya Boleh Memindahkan Senarai Senarai dalam Python?

Patricia Arquette
Lepaskan: 2024-12-25 20:25:11
asal
540 orang telah melayarinya

How Can I Transpose a List of Lists in Python?

Memindahkan Senarai Senarai

Diberikan senarai senarai, seperti:

l = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Salin selepas log masuk

Matlamat kami ialah untuk menukar senarai, menghasilkan:

r = [[1, 4, 7], [2, 5, 8], [3, 6, 9]]
Salin selepas log masuk

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)))
Salin selepas log masuk

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)))
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan