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

Bagaimanakah Pemahaman Senarai Bersarang Meratakan Senarai dalam Python?

Linda Hamilton
Lepaskan: 2024-12-04 06:07:12
asal
274 orang telah melayarinya

How Does Nested List Comprehension Flatten a List in Python?

Pemahaman Senarai Bersarang: Memecah Sintaks

Dalam Python, pemahaman senarai ialah cara ringkas untuk menjana senarai baharu berdasarkan senarai sedia ada satu. Walau bagaimanapun, apabila ia berkaitan dengan pemahaman senarai bersarang, sintaks boleh menjadi agak mengelirukan.

Pertimbangkan coretan berikut:

a = [[1,2],[3,4],[5,6]]
b = [x for xs in a for x in xs]
Salin selepas log masuk

Kod ini mengubah senarai bersarang a menjadi senarai diratakan b yang mengandungi semua unsur daripada a. Untuk memahami cara ini berfungsi, mari kita pecahkan sintaks:

[x for xs in a for x in xs]
Salin selepas log masuk

Ini ialah pemahaman bersarang dua peringkat. Ia pada asasnya mengatakan:

# Loop over the outer list
for xs in a:
    # Loop over the inner list
    for x in xs:
        # Add x to the new list b
        b.append(x)
Salin selepas log masuk

Dalam erti kata lain, ia mula-mula melelang ke atas senarai luar a, menetapkan setiap subsenarai kepada pembolehubah xs, dan kemudian melelaran ke atas subsenarai, memperuntukkan setiap elemen kepada pembolehubah x. Untuk setiap elemen x, ia menambahkannya pada senarai b baharu.

Proses membuka gelendong ini mengikut susunan gelung ditulis: gelung paling luar berbeza paling perlahan, diikuti gelung dalam. Ini ialah prinsip "Orang Tepat" yang disebut dalam PEP202, yang mengatakan bahawa pemahaman harus ditulis dengan indeks yang paling cepat berubah-ubah pada gelung paling dalam.

Dengan memahami prinsip ini, anda dengan yakin boleh menguraikan pemahaman senarai bersarang yang kompleks walaupun .

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