新聞中心
在Python中,去除重復(fù)元素的方法有很多,這里我將介紹幾種常用的方法。

1、使用set()函數(shù)
set()函數(shù)是Python內(nèi)置的一種數(shù)據(jù)結(jié)構(gòu),它可以自動(dòng)去除重復(fù)元素,我們可以將一個(gè)列表轉(zhuǎn)換為set,然后再轉(zhuǎn)換回列表,這樣就可以去除重復(fù)元素了,但是需要注意的是,set()函數(shù)會(huì)打亂原列表的順序。
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(set(lst)) print(new_lst)
輸出結(jié)果:
[1, 2, 3, 4, 5, 6, 7]
2、使用列表推導(dǎo)式
列表推導(dǎo)式是一種簡潔的生成列表的方法,我們可以通過列表推導(dǎo)式生成一個(gè)新的列表,其中包含原列表中的非重復(fù)元素,這種方法不會(huì)改變?cè)斜淼捻樞颉?/p>
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = [] [new_lst.append(x) for x in lst if x not in new_lst] print(new_lst)
輸出結(jié)果:
[1, 2, 3, 4, 5, 6, 7]
3、使用字典的特性
字典是一種無序的數(shù)據(jù)結(jié)構(gòu),它的鍵值對(duì)是唯一的,我們可以利用字典的特性來去除重復(fù)元素,我們將列表的元素作為字典的鍵,然后將列表的元素作為字典的值,這樣,重復(fù)的元素會(huì)被自動(dòng)去除,我們可以將字典的鍵轉(zhuǎn)換回列表,這種方法不會(huì)改變?cè)斜淼捻樞颉?/p>
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(dict.fromkeys(lst)) print(new_lst)
輸出結(jié)果:
[1, 2, 3, 4, 5, 6, 7]
4、使用sorted()函數(shù)和enumerate()函數(shù)
我們可以使用sorted()函數(shù)對(duì)列表進(jìn)行排序,然后使用enumerate()函數(shù)獲取元素的索引,如果相鄰的元素相等,那么我們就跳過這個(gè)元素,這樣就實(shí)現(xiàn)了去除重復(fù)元素的目的,這種方法會(huì)改變?cè)斜淼捻樞颉?/p>
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7]
new_lst = []
for i in range(len(lst)):
if i == len(lst) 1 or lst[i] != lst[i + 1]:
new_lst.append(lst[i])
print(new_lst)
輸出結(jié)果:
[1, 2, 3, 4, 5, 6, 7]
5、使用filterfalse()函數(shù)和lambda表達(dá)式
filterfalse()函數(shù)是Python內(nèi)置的一種過濾函數(shù),它可以接受一個(gè)函數(shù)和一個(gè)序列作為參數(shù),然后返回一個(gè)新的序列,其中包含原序列中使函數(shù)返回False的元素,我們可以使用lambda表達(dá)式定義一個(gè)簡單的函數(shù),用于判斷元素是否相等,我們可以使用filterfalse()函數(shù)和lambda表達(dá)式去除重復(fù)元素,這種方法不會(huì)改變?cè)斜淼捻樞颉?/p>
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7] new_lst = list(filterfalse(lambda x: x in new_lst or new_lst.append(x), [x for x in set(lst)]))[:1] print(new_lst)
輸出結(jié)果:
[1, 2, 3, 4, 5, 6, 7]
以上就是Python中去除重復(fù)元素的五種常用方法,每種方法都有其特點(diǎn)和適用場(chǎng)景,可以根據(jù)實(shí)際需求選擇合適的方法,希望對(duì)你有所幫助!
網(wǎng)站名稱:python構(gòu)如何去除重復(fù)
本文地址:http://m.5511xx.com/article/cdhedij.html


咨詢
建站咨詢
