Rumah > pembangunan bahagian belakang > Tutorial Python > Bagaimana untuk Mengeluarkan Pendua dengan Cekap dari Senarai Python Semasa Mengekalkan Pesanan?

Bagaimana untuk Mengeluarkan Pendua dengan Cekap dari Senarai Python Semasa Mengekalkan Pesanan?

DDD
Lepaskan: 2024-12-20 12:42:19
asal
626 orang telah melayarinya

How to Efficiently Remove Duplicates from a Python List While Maintaining Order?

Mengalih keluar Pendua dalam Senarai

Dalam Python, menyemak pendua dalam senarai dan mengembalikan senarai baharu tanpanya adalah tugas biasa. Terdapat beberapa pendekatan untuk mencapainya.

Menggunakan Set

Set ialah koleksi objek yang berbeza tidak tertib. Mereka menyediakan cara yang cekap untuk mengalih keluar pendua. Untuk membuat set daripada senarai, hantarkan sahaja kepada fungsi set(). Untuk menukarnya kembali kepada senarai, gunakan fungsi list(). Kaedah ini, bagaimanapun, tidak mengekalkan susunan asal unsur-unsur.

t = [1, 2, 3, 1, 2, 3, 5, 6, 7, 8]
list(set(t))  # [1, 2, 3, 5, 6, 7, 8]
Salin selepas log masuk

Mengekalkan Ketenteraman

Jika mengekalkan susunan asal adalah penting, koleksi.OrderedDict modul boleh digunakan. OrderedDict mengekalkan susunan sisipan item. Tukar senarai kepada OrderedDict dan kemudian kembali ke senarai untuk mengekalkan susunan.

from collections import OrderedDict
list(OrderedDict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]
Salin selepas log masuk

Menggunakan Kamus dalam Python 3.7

Dalam Python 3.7 dan lebih baharu, kamus biasa juga mengekalkan susunan sisipan. Oleh itu, anda boleh menggunakan pendekatan berikut:

list(dict.fromkeys(t))  # [1, 2, 3, 5, 6, 7, 8]
Salin selepas log masuk

Pertimbangan

Perhatikan bahawa semua kaedah ini memerlukan item dalam senarai boleh cincang (iaitu, tidak boleh ubah) . Jika item tidak boleh dicincang (cth., senarai), pendekatan yang lebih perlahan melibatkan perbandingan gelung bersarang diperlukan.

Atas ialah kandungan terperinci Bagaimana untuk Mengeluarkan Pendua dengan Cekap dari Senarai Python Semasa Mengekalkan Pesanan?. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan