Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk Meratakan Pemahaman Senarai Bersarang dalam Python?

Bagaimana untuk Meratakan Pemahaman Senarai Bersarang dalam Python?

DDD
DDDasal
2024-11-07 03:47:02805semak imbas

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>

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>

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!

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