Anda memiliki senarai Python yang mengandungi beberapa sub-senarai, seperti yang digambarkan di bawah:
k = [[1, 2], [4], [5, 6, 2], [1, 2], [3], [4]]
Matlamat anda adalah untuk menghapuskan unsur pendua daripada senarai bersarang ini, menghasilkan struktur pendua.
Kecekapan yang dicari boleh dicapai melalui penggunaan perpustakaan itertools. Modul ini menyediakan penyelesaian yang berkuasa untuk masalah sedemikian:
import itertools # Sort the nested list for efficient grouping k.sort() # Use groupby to categorize similar elements deduplicated_k = [k for k, _ in itertools.groupby(k)]
Pendekatan ini menawarkan penyelesaian yang ringkas dan cekap dari segi pengiraan. itertools membolehkan kami mengumpulkan dan menapis elemen dalam senarai bersarang dengan mudah, dengan berkesan menghapuskan pendua. Fungsi groupby berulang ke atas senarai yang diisih, mengumpulkan elemen yang serupa berturut-turut. Dengan mengekstrak kunci sahaja daripada kumpulan ini (mewakili elemen unik dalam senarai), kami memperoleh perwakilan pendua bagi senarai bersarang asal.
Untuk set data yang besar, kaedah ini mengatasi prestasi pendekatan penukaran set tradisional, seperti yang ditunjukkan dalam penanda aras yang disediakan. Walau bagaimanapun, untuk senarai yang lebih pendek, pendekatan "gelung masuk" kuadratik mungkin berfaedah. Oleh itu, teknik optimum untuk senario khusus anda bergantung pada saiz dan struktur data anda.
Walaupun kaedah itertools secara amnya berkesan, strategi lain mungkin sesuai untuk situasi tertentu:
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menyahduplikasi Senarai Bersarang dengan Cekap dalam Python?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!