Rumah  >  Artikel  >  Bagaimana untuk mengalih keluar pendua daripada senarai Python

Bagaimana untuk mengalih keluar pendua daripada senarai Python

百草
百草asal
2023-06-14 13:25:0713105semak imbas

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)

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)

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)

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)

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)

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))

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)

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!

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
Artikel sebelumnya:Apakah versi phpcms yang ada?Artikel seterusnya:Apakah versi phpcms yang ada?