Rumah >pembangunan bahagian belakang >Tutorial Python >Bagaimanakah Saya Boleh Mencari dan Mengeluarkan Elemen Pendua dengan Cekap daripada Senarai Python?

Bagaimanakah Saya Boleh Mencari dan Mengeluarkan Elemen Pendua dengan Cekap daripada Senarai Python?

Barbara Streisand
Barbara Streisandasal
2024-12-17 13:11:25489semak imbas

How Can I Efficiently Find and Remove Duplicate Elements from a Python List?

Mencari Pendua dalam Senarai

Dalam Python, mencari pendua dalam senarai boleh dicapai dalam beberapa cara, bergantung pada keperluan khusus .

Menggunakan Set

Set dalam Python ialah koleksi tidak tertib yang menghapuskan unsur pendua secara automatik. Untuk mengalih keluar pendua daripada senarai dan mencipta senarai baharu dengan susunan asal, hanya gunakan ungkapan set(a).

Mendapatkan Senarai Pendua

Jika anda memerlukan senarai elemen pendua, anda boleh menggunakan kamus untuk mengira kejadian setiap elemen dalam senarai asal. Elemen dengan kiraan lebih daripada satu dianggap pendua. Kod berikut menunjukkan pendekatan ini:

a = [1,2,3,2,1,5,6,5,5,5]

import collections
print([item for item, count in collections.Counter(a).items() if count > 1])

# Output: [1, 2, 5]

Menggunakan Set Intersection

Kaedah lain untuk mencari pendua ialah mencipta set elemen unik daripada senarai asal menggunakan set (a). Kemudian, anda boleh mencari pendua dengan menyilang set ini dengan senarai asal.

Contoh dengan Unsur Tidak Boleh Cincang

Jika elemen dalam senarai anda tidak boleh cincang ( cth., senarai atau kamus), anda boleh menggunakan pendekatan kekerasan dengan mengulangi semua pasangan elemen dan membandingkannya untuk kesaksamaan.

Contoh Kod:

a = [[1], [2], [3], [1], [5], [3]]

no_dupes = [x for n, x in enumerate(a) if x not in a[:n]]
print(no_dupes)  # [[1], [2], [3], [5]]

dupes = [x for n, x in enumerate(a) if x in a[:n]]
print(dupes)  # [[1], [3]]

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mencari dan Mengeluarkan Elemen Pendua dengan Cekap daripada Senarai 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