Python Keluarkan pendua dari contoh senarai
Jul 26, 2025 am 07:53 AMUntuk mengalih keluar unsur -unsur pendua dalam senarai python, 1. Gunakan set (): Ia sesuai untuk situasi di mana unsur -unsur tidak berubah dan tidak peduli dengan pesanan. Sintaks adalah senarai (set (original_list)), tetapi ia akan mengganggu perintah asal; 2. Gunakan dict.FromKeys (): Kaedah yang disyorkan, yang terpakai kepada Python 3.7, yang dapat mengekalkan urutan kejadian pertama unsur -unsur. Sintaks adalah senarai (dict.FromKeys (original_list)), dan kod itu ringkas dan cekap; 3. Penggunaan senarai derivasi dan koleksi benih: Ia sesuai untuk senario di mana logik deduplikasi diperlukan. Dengan melintasi senarai dan merakam unsur -unsur yang dilihat dengan set, memastikan keunikan; 4. Apabila berurusan dengan jenis yang tidak boleh dibasuh seperti kamus, anda boleh deduplicate berdasarkan kunci tertentu (seperti 'id'), secara manual melintasi dan menggunakan koleksi benih untuk memastikan nilai utama tidak ditambah berulang kali. Ringkasan: Secara umum, adalah disyorkan untuk menggunakan dict.FromKeys () untuk mengekalkan perintah. Jika anda tidak memerlukan pesanan, anda boleh menggunakan set (). Untuk struktur kompleks, traversal secara manual dan tambah set benih untuk menyelesaikan deduplikasi.
Terdapat beberapa cara untuk menghapuskan elemen pendua dari senarai Python, dan berikut adalah beberapa contoh biasa dan praktikal.

1. Gunakan set()
(paling mudah, tetapi tidak menyimpan pesanan)
Jika unsur -unsur dalam senarai adalah semua jenis yang tidak berubah (seperti integer, rentetan, tuples), dan anda tidak peduli dengan urutan unsur -unsur , anda boleh secara langsung menukarnya ke koleksi dan kemudian kembali ke senarai:
original_list = [1, 2, 2, 3, 4, 4, 5] unik_list = senarai (set (original_list)) cetak (unik_list) # output mungkin [1, 2, 3, 4, 5] (pesanan mungkin berbeza)
?? Nota:
set
akan mengganggu pesanan asal kerana set tidak teratur.
2. Gunakan dict.fromkeys()
(disyorkan, simpan pesanan)
Ini adalah cara paling mudah untuk mengekalkan kejadian pertama unsur -unsur , dan ia berfungsi di Python 3.7 (kerana kamus menjamin perintah penyisipan bermula dari 3.7):
original_list = [1, 2, 2, 3, 4, 4, 5] unik_list = senarai (dict.FromKeys (Original_List)) cetak (unik_list) # output: [1, 2, 3, 4, 5]
? Kelebihan: Kod ini ringkas, menyimpan pesanan dan cepat.

3. Senarai Gunakan untuk memperoleh set seen
(logik tersuai, sesuai untuk senario kompleks)
Jika anda ingin mempunyai lebih banyak fleksibiliti dalam mengawal logik deduplikasi (seperti pengendalian senarai kamus), anda boleh menggunakan koleksi sekunder untuk merakam unsur -unsur yang dilihat:
original_list = [1, 2, 2, 3, 4, 4, 5] lihat = set () unik_list = [] untuk item dalam asal_list: Sekiranya item tidak dilihat: dilihat.add (item) unik_list.append (item) cetak (unik_list) # output: [1, 2, 3, 4, 5]
Kaedah ini sesuai untuk senario di mana logik "pengulangan penghakiman" adat diperlukan.
4. Keluarkan pendua jenis tidak boleh dibasuh seperti kamus dalam senarai
Jika senarai itu adalah kamus atau senarai yang tidak boleh dimakan, anda tidak boleh menggunakan set
atau dict.fromkeys()
secara langsung. Anda boleh deduplikasi berdasarkan kunci tertentu:
data = [ {'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'bob'}, {'id': 1, 'name': 'Alice'}, # Ulang] lihat = set () unik_data = [] Untuk item dalam data: kunci = item ['id'] # jika kunci tidak dalam benih: dilihat.add (kunci) unik_data.append (item) cetak (unik_data) # Output: [{'id': 1, 'name': 'Alice'}, {'id': 2, 'name': 'bob'}]
Ringkasan: Penggunaan yang disyorkan
- Umumnya (unsur -unsur boleh diasingkan, dan perintah mesti dikekalkan)? Gunakan
list(dict.fromkeys(lst))
- Tidak peduli dengan pesanan, mengejar kelajuan? Gunakan
list(set(lst))
- Struktur kompleks (seperti kamus)? Secara manual melintasi koleksi
seen
Pada dasarnya semua ini tidak rumit tetapi mudah untuk mengabaikan isu pesanan.
Atas ialah kandungan terperinci Python Keluarkan pendua dari contoh senarai. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undress AI Tool
Gambar buka pakaian secara percuma

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas

SetupaMaven/gradleprojectwithjax-rsdependencyiSejersey; 2.createarescresourceUsingAnnotationssuchas@pathand@get; 3.configuretheapplicationviaapplicationsubclassorweb.xml;

Maven adalah alat standard untuk pengurusan dan pembinaan projek Java. Jawapannya terletak pada hakikat bahawa ia menggunakan pom.xml untuk menyeragamkan struktur projek, pengurusan pergantungan, automasi kitaran hayat pembinaan dan sambungan pemalam; 1. Gunakan pom.xml untuk menentukan kumpulan, artifactid, versi dan kebergantungan; 2. Perintah teras utama seperti mvnclean, penyusun, ujian, pakej, memasang dan menggunakan; 3. Gunakan DependencyManagement dan Pengecualian untuk Menguruskan Versi Ketergantungan dan Konflik; 4. Mengatur aplikasi besar melalui struktur projek multi-modul dan diuruskan secara seragam oleh POM induk; 5.

Untuk menjana nilai hash menggunakan Java, ia boleh dilaksanakan melalui kelas MessageDigest. 1. Dapatkan contoh algoritma yang ditentukan, seperti MD5 atau SHA-256; 2. Panggil kaedah .Update () untuk lulus dalam data untuk disulitkan; 3. Panggil kaedah .digest () untuk mendapatkan pelbagai hash byte; 4. Tukar array byte ke dalam rentetan heksadesimal untuk membaca; Untuk input seperti fail besar, baca dalam ketulan dan panggilan .Update () beberapa kali; Adalah disyorkan untuk menggunakan SHA-256 dan bukannya MD5 atau SHA-1 untuk memastikan keselamatan.

Pertama, gunakan JavaScript untuk mendapatkan pilihan sistem pengguna dan tetapan tema yang disimpan di dalam negara, dan memulakan tema halaman; 1. Struktur HTML mengandungi butang untuk mencetuskan Topik Switching; 2. CSS menggunakan: Root untuk menentukan pembolehubah tema yang cerah, kelas mod-mode mentakrifkan pembolehubah tema gelap, dan menggunakan pembolehubah ini melalui VAR (); 3. JavaScript mengesan lebih suka skema-skema dan membaca LocalStorage untuk menentukan tema awal; 4. Tukar kelas mod gelap pada elemen HTML apabila mengklik butang, dan menjimatkan keadaan semasa ke LocalStorage; 5. Semua perubahan warna disertakan dengan animasi peralihan 0.3 saat untuk meningkatkan pengguna

Ya, menu drop-down CSS biasa boleh dilaksanakan melalui HTML dan CSS tulen tanpa JavaScript. 1. Gunakan UL dan Li bersarang untuk membina struktur menu; 2. Gunakan: Hover pseudo-Class untuk mengawal paparan dan menyembunyikan kandungan tarik-turun; 3. Tetapkan Kedudukan: Relatif untuk Ibu Bapa Li, dan submenu diletakkan menggunakan kedudukan: mutlak; 4. Submenu mungkir untuk memaparkan: Tiada, yang menjadi paparan: blok apabila melayang; 5. Multi-level pull-down boleh dicapai melalui bersarang, digabungkan dengan peralihan, dan menambah animasi pudar, dan disesuaikan dengan terminal mudah alih dengan pertanyaan media. Penyelesaian keseluruhannya mudah dan tidak memerlukan sokongan JavaScript, yang sesuai untuk besar

Fail Tetapan.JSON terletak di laluan peringkat pengguna atau ruang kerja dan digunakan untuk menyesuaikan tetapan vscode. 1. Laluan peringkat pengguna: Windows adalah C: \ Users \\ AppData \ Roaming \ code \ user \ settings.json, macOS adalah /users//library/applicationsupport/code/user/settings.json, linux adalah/ 2. Laluan Tahap Ruang Kerja: .VSCODE/Tetapan dalam Direktori Root Projek

Gunakan DateTime.StrpTime () untuk menukar rentetan tarikh ke dalam objek DateTime. 1. Penggunaan Asas: Parse "2023-10-05" sebagai objek DateTime melalui "%y-%m-%d"; 2. Menyokong pelbagai format seperti "%m/%d/%y" untuk menghuraikan tarikh Amerika, "%d/%m/%y" untuk menghuraikan tarikh British, "%b%d,%y%i:%m%p" untuk menghuraikan masa dengan am/pm; 3. Gunakan dateUtil.parser.parse () untuk secara automatik menyimpulkan format yang tidak diketahui; 4. Gunakan .D

Gunakan modul UUID untuk mendapatkan alamat MAC kad rangkaian pertama mesin di seluruh platform, tanpa memerlukan perpustakaan pihak ketiga, dan menukarnya menjadi format standard melalui uuid.getNode (); 2. Gunakan subprocess untuk memanggil arahan sistem seperti ipconfig atau ifconfig, dan menggabungkannya dengan pengekstrakan tetap semua alamat kad rangkaian MAC, yang sesuai untuk senario di mana banyak maklumat kad rangkaian perlu diperoleh; 3. Gunakan perpustakaan pihak ketiga getMac, hubungi get_mac_address () selepas pemasangan untuk mendapatkan MAC, yang menyokong pertanyaan melalui antara muka atau IP, tetapi memerlukan ketergantungan tambahan; Ringkasnya, jika tiada perpustakaan luaran diperlukan, kaedah UUID disyorkan. Jika anda perlu fleksibel mendapatkan maklumat kad pelbagai rangkaian, anda boleh menggunakan penyelesaian subprocess untuk membolehkan anda memasang getma ketergantungan.
