在處理列表時,如果不加以處理,就很容易出現重複元素的情況。為了避免這種情況的發生,需要對列表進行去重操作。本文將從多個方面詳細闡述如何為列表去除重複元素。
一、利用set去重
利用set是一種常用的去重方法,因為set內部的元素是唯一的,自然可以去除列表中的重複元素。
list1 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
result = list(set(list1))
運行結果:
[1, 2, 3, 4, 5]
以上代碼中,通過set將列錶轉為集合,然後再將集合轉為列表(因為集合是無序的),這樣就能實現列表去重。
二、利用字典去重
在Python中,字典的鍵是唯一的,可以利用這一特性來進行去重操作。
list2 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result_dict = {}.fromkeys(list2)
result = list(result_dict.keys())
運行結果:
['a', 'b', 'c', 'd']
以上代碼中,通過字典的fromkeys方法,將列表的元素作為鍵創建一個字典,然後再將字典的鍵取出來作為去重後的列表。
三、利用列表推導式去重
還有一種簡單方便的方法就是使用列表推導式進行去重操作。
list3 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = list(set([x for x in list3]))
運行結果:
['a', 'b', 'c', 'd']
以上代碼中,利用列表推導式將列表中的元素取出來,然後使用set去重,最後將去重後的集合再轉為列表即可。
四、利用雙重循環去重
利用雙重循環也可以實現去重操作,具體思路就是對每個元素進行遍歷,如果有重複的就刪掉。
list4 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = []
for i in list4:
if i not in result:
result.append(i)
運行結果:
['a', 'b', 'c', 'd']
以上代碼中,對於每個元素,如果它不在結果列表中,就將它加入到結果列表中,這樣就能去除重複元素了。
五、利用Pandas去重
對於大規模數據的去重操作,可以使用Pandas庫來實現。
import pandas as pd
list5 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
df = pd.DataFrame(list5, columns=['col'])
result = df['col'].unique().tolist()
運行結果:
['a', 'b', 'c', 'd']
以上代碼中,先將列錶轉為Pandas的數據框,然後再對數據框進行去重操作,返回結果也是一個列表。
六、小結
本文總結了多種去重方法,包括利用set、字典、列表推導式、雙重循環和Pandas等方法。每種方法都有各自的特點和適用場景,讀者可以根據具體情況靈活使用。
參考代碼
list1 = [1, 2, 3, 4, 5, 1, 2, 3, 4, 5]
result = list(set(list1))
list2 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result_dict = {}.fromkeys(list2)
result = list(result_dict.keys())
list3 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = list(set([x for x in list3]))
list4 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
result = []
for i in list4:
if i not in result:
result.append(i)
import pandas as pd
list5 = ['a', 'b', 'c', 'd', 'a', 'b', 'c', 'd']
df = pd.DataFrame(list5, columns=['col'])
result = df['col'].unique().tolist()
原創文章,作者:LWFCS,如若轉載,請註明出處:https://www.506064.com/zh-tw/n/324587.html