在??P(′?`)ython中,構何去除重復元素的去除方法有很多,這里我將介紹幾種常用的重復方法。
(圖片來(lái)源網(wǎng)絡(luò ),構何侵刪)1、去除使用set()函數
set()函數是重復Pyt(′?`)hon內置的一種數據結構,它可以自動(dòng)去除重復(fu)元素,構何我們可以將一個(gè)列表轉換為set,去除然后再轉換回列表,重復這樣就可以去除重復元??素了,構何但是去除需( ?ヮ?)要注意的是,set()函數會(huì )打亂原列表的重復順序。
示例代碼:
lst = [1,構何 2, 3, 4, 4, 5, 6, 6, 7]new_lst = list(set(lst))print(new_lst)
輸出結果:
[1, 2, 3, 4, 5, 6, 7]
2、使用列表推導式
列表推導式是去除一種簡(jiǎn)潔的生成列表的方法,(╬?益?)我們可以通過(guò)列表推導式生成一個(gè)新的重復列表,其中包含原列表中的非重復元素,這種方法不會(huì )改變原列(′;ω;`)(lie)表的順序。
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7]new_lst = [][new_lst.append(x) for x in lst if x not in ne??w_lst]print(new_lst)
輸出結果:
[1,(′?`*) 2, 3, 4, 5, 6, 7]
字典是一種無(wú)序的數據結構,它的鍵值對是唯一的,我們可以利用字典的特性來(lái)去除重復元素,我??們將列表的元素作為字典的鍵,然后將列表的元素作為字典的值,這樣,重復的元素會(huì )被自動(dòng)去除,我們可以將字典的鍵轉換回列表,這種方法不會(huì )改變原列表的順序。
示例代碼:
lst = [1, 2, 3, 4, 4, 5, 6, 6, 7]new(′?ω?`)_lst = list(dict.fro??mke??ys(lst))print(new_lst)
輸出結果:
[1, 2, 3, 4, 5, 6, 7]我們可以使用sorted()函數對列??表進(jìn)行排序,然后使用enumerate()函數獲取元素的索引,如果(guo)相鄰的元素相等,那么我們就跳過(guò)這個(gè)元素,這樣就實(shí)現了去除重復元素的目的,這種方法會(huì )改變原列表的順序。
示例代碼:
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)
輸出結果:??
[1, 2, 3, 4, 5, 6, 7]5、使用filterfalse()函數和lambda表(biao)達式
filterfalse()函數是Python內置的一(′_`)種過(guò)濾函數,它可以接受一個(gè)函數和一個(gè)序列作為參數,然后返回一個(gè)新的序列,其中包含原序列中使函數返回False的元素,我們可以使用lambda表達式定義一個(gè)簡(jiǎn)單的函數,用于判斷元素是否相等,我們可以使用filterfalse()函數和lambda表達式去除重(zhong)復元素,這種方法不會(huì )改變原列表的順序。
示例代碼:
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)輸出結果:
[1, 2, 3, 4, 5, 6, 7]
以上就是Python中去除重復元素的五種常用方法,每種方法都有其特點(diǎn)和適用場(chǎng)景,可以根據實(shí)??際需求選擇合適的方法,希望對你有所幫助!
(作者:百度優(yōu)化)