Rumah > masalah biasa > teks badan

Bagaimana untuk mengalih keluar pendua daripada senarai Python

百草
Lepaskan: 2023-06-14 13:25:07
asal
13143 orang telah melayarinya

Kaedah deduplikasi senarai Python: 1. Untuk gelung melaksanakan deduplikasi senarai, susunan asal kekal tidak berubah selepas penyahduplikasian; ()" melaksanakan penyahduaan senarai. Prinsipnya ialah elemen pendua set yang sama tidak dibenarkan. 4. Cipta kamus baharu untuk mencapai penyahduaan senarai. Prinsipnya ialah "kunci" kamus ialah Penduaan tidak dibenarkan; 5 . Terdapat data pendua dalam senarai pemadaman Selagi terdapat pendua, padam semuanya.

Bagaimana untuk mengalih keluar pendua daripada senarai Python

Sistem pengendalian untuk tutorial ini: Sistem Windows 10, Python versi 3.11.2, komputer DELL G3.

Cara mengalih keluar pendua daripada senarai Python:
1 Gunakan gelung for untuk mengalih keluar pendua daripada senarai

Selepas kaedah ini mengalih keluar pendua, susunan asal kekal tidak berubah. .

# for循环实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = []
for l1 in list1:
    if l1 not in list2:
        list2.append(l1)
print(list2)
Salin selepas log masuk

Hasil: ['a', 'b', 1, 3, 9]

2. Gunakan pemahaman senarai untuk mengalih keluar pendua
Selepas penyahduaan menggunakan kaedah ini, susunan asal kekal tidak berubah.

# 使用列表推导式去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
res = []
[res.append(i) for i in list1 if i not in res]
print(res)
Salin selepas log masuk

Hasil: ['a', 'b', 1, 3, 9]

3 Gunakan set fungsi penukaran set() untuk mencapai penyahduplikasi senarai
Prinsip: Penduaan tidak dibenarkan antara elemen set yang sama

# set()列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
print(list2)
Salin selepas log masuk

Keputusan: [1, 3, 9, 'b', 'a']
Masalah: Gunakan fungsi set() Selepas penyahduaan, ia akan diisih secara automatik, dan susunan senarai asal akan berubah
Terdapat dua penyelesaian:
Kaedah pertama, gunakan kaedah sort()

# # 第一种方法,sort()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
list2.sort(key=list1.index)
print(list2)
Salin selepas log masuk

Keputusan: [' a ', 'b', 1, 3, 9]
Nota: Kaedah sort() tidak mempunyai nilai pulangan dan elemen senarai diisih di tempatnya
Kaedah kedua ialah menggunakan fungsi sorted()

# 第二种方法,sored()
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = sorted(list(set(list1)), key=list1.index)
print(list2)
Salin selepas log masuk

Keputusan: ['a', 'b', 1, 3, 9]
Nota: Fungsi terbina dalam python sorted() mengembalikan senarai baharu dan tidak membuat sebarang pengubahsuaian kepada senarai asal

4 Gunakan kaedah kamus baharu untuk mencapai penyahduplikasi senarai
Prinsip: "Kunci" kamus tidak dibenarkan diulang
Selepas penyahduplikasian dengan. kaedah ini, susunan asal kekal tidak berubah.

# 使用新建字典实现列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
dic = {}
dic = dic.fromkeys(list1).keys()
print(list(dic))
Salin selepas log masuk

Hasil: ['a', 'b', 1, 3, 9]

5 Padamkan data pendua dalam senarai
Di atas sana ialah 4 kaedah penduaan, kesemuanya menyimpan satu dan memadam yang lain
Kaedah berikut adalah untuk tidak menyimpan satu pun asalkan terdapat pendua

# 删除存在重复的值,不保留
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = [i for i in list1 if list1.count(i) == 1]
print(list2)
Salin selepas log masuk

Hasilnya: ['b', 1, 3]

Di atas adalah 5 kaedah untuk menyahduplikasi senarai Anda boleh memilih kaedah yang sepadan mengikut keperluan anda.

Atas ialah kandungan terperinci Bagaimana untuk mengalih keluar pendua daripada senarai Python. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Label berkaitan:
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!