Bagaimana untuk Meratakan Pemahaman Senarai Bersarang dalam Python?

DDD
Lepaskan: 2024-11-07 03:47:02
asal
887 orang telah melayarinya

How to Flatten Nested List Comprehensions in Python?

Meratakan Pemahaman Senarai untuk Mendapatkan Keputusan Satu Tahap

Apabila berhadapan dengan struktur data bersarang, pengaturcara sering bertujuan untuk meratakannya menjadi satu tahap. Ini timbul semasa menggunakan pemahaman senarai, di mana setiap elemen mungkin mengeluarkan senarai, yang membawa kepada senarai senarai. Soalan di tangan menangani isu ini, mencari penyelesaian untuk mendapatkan senarai yang diratakan.

Lelaran Bersarang untuk Meratakan

Pemahaman senarai Python menawarkan sintaks ringkas untuk transformasi data yang rumit . Untuk mencapai perataan, seseorang boleh menggunakan lelaran bersarang dalam satu pemahaman senarai. Kod berikut menunjukkan pendekatan ini:

<code class="python">[filename for path in dirs for filename in os.listdir(path)]</code>
Salin selepas log masuk

Dalam contoh ini, 'dirs' ialah senarai direktori dan untuk setiap direktori, 'os.listdir(path)' mengembalikan senarai subdirektori. Pemahaman bersarang berulang pada kedua-dua senarai, mengumpul subdirektori menjadi hasil yang diratakan.

Kesamaan Fungsian

Kefahaman senarai bersarang boleh diwakili sebagai satu siri gelung bersarang:

<code class="python">filenames = []
for path in dirs:
    for filename in os.listdir(path):
        filenames.append(filename)</code>
Salin selepas log masuk

Kedua-dua pendekatan mencapai hasil yang sama: senarai subdirektori yang diratakan. Pemahaman senarai menawarkan sintaks yang lebih padat dan boleh dibaca, terutamanya untuk transformasi kompleks yang melibatkan berbilang lelaran.

Atas ialah kandungan terperinci Bagaimana untuk Meratakan Pemahaman Senarai Bersarang 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan