Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Meratakan Senarai Bersarang dalam Python?

Bagaimanakah Saya Meratakan Senarai Bersarang dalam Python?

Patricia Arquette
Patricia Arquetteasal
2024-12-21 13:55:16499semak imbas

How Do I Flatten a Nested List in Python?

Meratakan Senarai: Panduan Langkah demi Langkah

Senarai bersarang boleh timbul apabila berurusan dengan struktur data yang kompleks atau bekerja dengan data yang mempunyai telah dikumpulkan dalam pelbagai cara. Walaupun senarai ini berguna untuk organisasi, ada kalanya kita perlu meratakannya menjadi satu senarai satu dimensi untuk pemprosesan atau analisis selanjutnya.

Penyelesaian untuk meratakan senarai senarai terletak pada konsep membongkar struktur bersarang. Satu kaedah yang berkesan melibatkan penggunaan pemahaman senarai bersarang:

flat_list = [
    x
    for xs in xss
    for x in xs
]

Dalam pendekatan ini, kami mengulangi setiap subsenarai dalam xss dan kemudian melelang melalui setiap elemen dalam subsenarai, menambahkan setiap elemen pada senarai baru yang diratakan. Teknik ini menyediakan cara yang mudah untuk mendapatkan hasil yang diingini.

Sebagai alternatif, kita boleh melaksanakan logik yang sama menggunakan pendekatan yang lebih penting:

def flatten(xss):
    flat_list = []
    for xs in xss:
        for x in xs:
            flat_list.append(x)
    return flat_list

Fungsi ini, walaupun lebih bertele-tele, menawarkan lebih besar fleksibiliti dalam mengendalikan kemungkinan variasi dalam struktur senarai bersarang.

Perlu diperhatikan bahawa teknik merata lain wujud, setiap satu dengan kelebihan dan kekurangannya yang tersendiri. Walau bagaimanapun, pendekatan pemahaman senarai bersarang dan fungsi rata yang digariskan di atas secara amnya dianggap cekap dan mudah untuk dilaksanakan.

Atas ialah kandungan terperinci Bagaimanakah Saya Meratakan Senarai Bersarang 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