Rumah > pembangunan bahagian belakang > Tutorial Python > Apakah Cara Paling Cekap untuk Meratakan Senarai Senarai dalam Python?

Apakah Cara Paling Cekap untuk Meratakan Senarai Senarai dalam Python?

Barbara Streisand
Lepaskan: 2024-12-23 14:01:14
asal
492 orang telah melayarinya

What's the Most Efficient Way to Flatten a List of Lists in Python?

Meratakan Senarai Senarai

Meratakan senarai senarai melibatkan penukaran struktur bersarang kepada senarai satu peringkat. Dalam Python, ini boleh dicapai menggunakan beberapa kaedah.

Pemahaman Senarai Bersarang

Kaedah yang paling berkesan ialah pemahaman senarai bersarang:

flat_list = [x for xs in xss for x in xs]
Salin selepas log masuk

Ungkapan ini berulang pada setiap senarai dalaman dan menambahkan setiap elemen pada rata yang terhasil senarai.

Menggunakan Operator

Anda juga boleh meratakan senarai menggunakan operator:

flat_list = []
for xs in xss:
    flat_list = flat_list + xs
Salin selepas log masuk

Kaedah ini lebih perlahan sedikit daripada pemahaman senarai disebabkan penyatuan senarai berulang.

Menggunakan jumlah dengan Kosong Senarai

Pendekatan lain menggunakan fungsi jumlah dengan senarai kosong:

flat_list = sum(xss, [])
Salin selepas log masuk

Kaedah ini kurang cekap daripada pemahaman senarai, terutamanya untuk senarai besar.

Menggunakan functools.reduce

Akhir sekali, anda boleh menggunakan fungsi functools.reduce:

from functools import reduce
flat_list = reduce(lambda xs, ys: xs + ys, xss)
Salin selepas log masuk

Sekali lagi, kaedah ini lebih perlahan daripada pemahaman senarai.

Ujian prestasi menggunakan modul timeit menunjukkan bahawa pemahaman senarai adalah kaedah terpantas.

Atas ialah kandungan terperinci Apakah Cara Paling Cekap untuk Meratakan 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