Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimanakah Saya Boleh Mengeluarkan Pendua dengan Cekap dari Senarai Semasa Memelihara Pesanan dalam Python?

Bagaimanakah Saya Boleh Mengeluarkan Pendua dengan Cekap dari Senarai Semasa Memelihara Pesanan dalam Python?

Barbara Streisand
Lepaskan: 2024-12-31 05:50:13
asal
722 orang telah melayarinya

How Can I Efficiently Remove Duplicates from a List While Preserving Order in Python?

Memelihara Pesanan Semasa Mengalih Keluar Pendua daripada Senarai

Mengalih keluar elemen pendua daripada senarai sambil mengekalkan susunan asal boleh menjadi satu cabaran, kerana menggunakan set untuk menghapuskan pendua biasanya mengganggu urutan awal.

Untuk menangani perkara ini isu, komuniti Python telah membangunkan pelbagai penyelesaian terbina dalam dan idiomatik. Salah satu pilihan paling cekap ialah fungsi yang dikenali sebagai f7, yang memanfaatkan set untuk mengesan dan mengalih keluar pendua dengan cekap:

def f7(seq):
    seen = set()
    seen_add = seen.add
    return [x for x in seq if not (x in seen or seen_add(x))]
Salin selepas log masuk

Fungsi ini menggunakan set yang dinamakan dilihat untuk mengenal pasti dan mengalih keluar pendua dengan pantas. Pengoptimuman rahsia terletak pada menugaskan seen.add kepada seen_add sebagai pembolehubah setempat. Ini menghalang Python daripada menyelesaikan secara dinamik seen.add pada setiap lelaran, yang boleh membawa kepada kemerosotan prestasi kerana potensi untuk dilihat.tambah kepada perubahan.

Alternatif lain, seperti struktur data set tersusun daripada ActiveState, adalah juga tersedia jika anda menjangkakan melakukan operasi pengalihan keluar pendua yang kerap pada set data yang sama.

Adalah penting untuk ambil perhatian bahawa dalam kod yang disediakan, seen.add() secara konsisten mengembalikan Tiada, memerlukan penggunaan logik atau operator sebagai kaedah untuk mencetuskan kemas kini yang ditetapkan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengeluarkan Pendua dengan Cekap dari Senarai Semasa Memelihara Pesanan 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan