一、set()函數去重
Python內置的set()函數可以快速實現列表去重。
list1 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list1 = list(set(list1))
print(new_list1) # [1, 2, 3, 4, 5, 6]
以上代碼中,先將list1轉換為集合,然後再將集合轉換為列表。
需要注意的是,set()函數不僅可以用於數字列表的去重,也可以用於字符串、元組等其他類型的去重。
二、列表內置方法去重
Python內置的列表方法也可以實現列表去重。
方法一:通過循環實現。
list2 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list2 = []
for i in list2:
if i not in new_list2:
new_list2.append(i)
print(new_list2) # [1, 2, 3, 4, 5, 6]
方法二:通過列表推導式實現。
list3 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list3 = [i for i in list3 if i not in new_list3]
print(new_list3) # [1, 2, 3, 4, 5, 6]
需要注意的是,方法二中的列表推導式在大規模數據處理時可能會消耗較多的內存。
三、利用字典keys()方法去重
利用Python字典的keys()方法可以實現列表去重。
list4 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
dic = {}.fromkeys(list4)
new_list4 = list(dic.keys())
print(new_list4) # [1, 2, 3, 4, 5, 6]
需要注意的是,字典的key是不能重複的,因此可以利用這一特性進行去重。
四、利用外部庫實現列表去重
除了使用Python內置函數和方法進行列表去重外,還可以使用外部庫來實現列表去重。
方法一:利用numpy庫實現。
import numpy as np
list5 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list5 = np.unique(list5)
print(new_list5) # [1 2 3 4 5 6]
方法二:利用pandas庫實現。
import pandas as pd
list6 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list6 = pd.unique(list6).tolist()
print(new_list6) # [1, 2, 3, 4, 5, 6]
需要注意的是,使用外部庫實現列表去重需要先安裝相應的庫。
五、總結
本文介紹了Python中實現列表去重的五種方法。需要根據實際情況選擇不同的方法進行應用,如對於較小規模的數據可以使用內置函數和方法進行處理,而對於大規模數據則可能需要使用外部庫。
附:完整代碼示例
#set函數去重
list1 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list1 = list(set(list1))
print(new_list1) #[1, 2, 3, 4, 5, 6]
#列表內置方法去重
#方法一:循環實現
list2 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list2 = []
for i in list2:
if i not in new_list2:
new_list2.append(i)
print(new_list2) #[1, 2, 3, 4, 5, 6]
#方法二:列表推導式實現
list3 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list3 = [i for i in list3 if i not in new_list3]
print(new_list3) #[1, 2, 3, 4, 5, 6]
#利用字典keys()方法去重
list4 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
dic = {}.fromkeys(list4)
new_list4 = list(dic.keys())
print(new_list4) #[1, 2, 3, 4, 5, 6]
#利用外部庫實現列表去重
#方法一:利用numpy庫實現
import numpy as np
list5 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list5 = np.unique(list5)
print(new_list5) #[1 2 3 4 5 6]
#方法二:利用pandas庫實現
import pandas as pd
list6 = [1, 2, 2, 3, 3, 4, 5, 5, 6]
new_list6 = pd.unique(list6).tolist()
print(new_list6) #[1, 2, 3, 4, 5, 6]
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hk/n/219546.html