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
Barbara Streisandasal
2024-12-23 14:01:14445semak imbas

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]

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

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

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)

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!

Kenyataan:
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