Python列表去重的方法:1、for迴圈實作列表去重,此方法去重後原順序不變;2、列表推導式去重,此方法去重後原順序不變; 3.集合轉換函數「set()」實作列表去重,其原理是同一個集合的元素之間是不允許重複的;4、新建字典方式實作列表去重,其原理是字典的「鍵」是不允許重複的;5、刪除清單中存在重複的數據,只要存在重複,全部刪除。
本教學作業系統:windows10系統、Python 3.11.2版本、DELL G3電腦。
Python列表去重的方法:
一、使用for迴圈實作清單去重
此方法去重後,原始順序保持不變。
# for循环实现列表去重 list1 = ['a', 'b', 1, 3, 9, 9, 'a'] list2 = [] for l1 in list1: if l1 not in list2: list2.append(l1) print(list2)
結果:['a', 'b', 1, 3, 9]
二、使用列表推導式去重
##此方法去重後,原順序不變。
# 使用列表推导式去重 list1 = ['a', 'b', 1, 3, 9, 9, 'a'] res = [] [res.append(i) for i in list1 if i not in res] print(res)
三、使用集合轉換函數set()實現列表去重
原理:同一個集合的元素之間是不允許重複的# set()列表去重
list1 = ['a', 'b', 1, 3, 9, 9, 'a']
list2 = list(set(list1))
print(list2)
問題:使用set()函數去重後,會自動排序,則原始列表的順序會發生改變
解決辦法有2種:
# # 第一种方法,sort() list1 = ['a', 'b', 1, 3, 9, 9, 'a'] list2 = list(set(list1)) list2.sort(key=list1.index) print(list2)
註:sort()方法沒有傳回值,對列表元素進行原地排序
第二種方法,使用sorted()函數#### 第二种方法,sored() list1 = ['a', 'b', 1, 3, 9, 9, 'a'] list2 = sorted(list(set(list1)), key=list1.index) print(list2)
# 使用新建字典实现列表去重 list1 = ['a', 'b', 1, 3, 9, 9, 'a'] dic = {} dic = dic.fromkeys(list1).keys() print(list(dic))
# 删除存在重复的值,不保留 list1 = ['a', 'b', 1, 3, 9, 9, 'a'] list2 = [i for i in list1 if list1.count(i) == 1] print(list2)
以上是Python列表怎麼去重的詳細內容。更多資訊請關注PHP中文網其他相關文章!