Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Meratakan Senarai Cetek dengan Cekap dalam Python?

Bagaimanakah Saya Boleh Meratakan Senarai Cetek dengan Cekap dalam Python?

Mary-Kate Olsen
Lepaskan: 2024-12-20 17:56:10
asal
1023 orang telah melayarinya

How Can I Efficiently Flatten Shallow Lists in Python?

Meratakan Senarai Cetek dengan Iterables dalam Python

Dalam Python, meratakan senarai cetek, di mana setiap elemen adalah boleh lelar sendiri, boleh menimbulkan cabaran . Artikel ini meneroka pelbagai cara untuk meratakan senarai sedemikian dengan berkesan, mengutamakan prestasi dan kejelasan kod.

Pendekatan:

  1. Pemahaman Senarai

    Percubaan untuk menggunakan pemahaman senarai bersarang mungkin meningkatkan NameRalat disebabkan oleh pembolehubah tidak ditentukan dalam gelung bersarang:

    [image for image in menuitem for menuitem in list_of_menuitems]
    Salin selepas log masuk
  2. Kurangkan dengan Fungsi Lambda:

    Menggunakan pengurangan dengan fungsi lambda menawarkan penyelesaian mudah:

    reduce(list.__add__, map(lambda x: list(x), list_of_menuitems))
    Salin selepas log masuk

    Walau bagaimanapun, kebolehbacaan pendekatan ini mungkin menderita akibat penggunaan list(x).

  3. Itertools.chain()

    Itertools.chain() menyediakan yang cekap dan elegan kaedah untuk meratakan senarai cetek. Ia dengan lancar menggabungkan iterable menjadi satu iterable:

    from itertools import chain
    list(chain(*list_of_menuitems))
    Salin selepas log masuk

    Pendekatan ini mengelakkan salinan berlebihan dan menawarkan prestasi yang setanding untuk mengurangkan.

  4. Itertools.chain.from_iterable ()

    Untuk dipertingkatkan kejelasan, pertimbangkan untuk menggunakan itertools.chain.from_iterable():

    chain = itertools.chain.from_iterable([[1,2],[3],[5,89],[],[6]])
    print(list(chain))
    Salin selepas log masuk

    Ini menyatakan perataan secara eksplisit tanpa menggunakan sihir pengendali.

Kesimpulan:

Itertools.chain() dan variasinya menawarkan berkesan dan boleh dibaca kaedah untuk meratakan senarai cetek, mengutamakan prestasi dan kejelasan kod. Pertimbangkan kes penggunaan khusus dan keutamaan kebolehbacaan apabila memilih pendekatan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Meratakan Senarai Cetek dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

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