您好,登錄后才能下訂單哦!
這篇文章將為大家詳細講解有關Python怎么實現去除列表中重復元素功能,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。
具體如下:
# !/usr/bin/env python # -*- coding:utf-8 -*- ''' __Author__:沂水寒城 功能: python列表去除方法總結(7種方法) ''' import sys reload(sys) import copy sys.setdefaultencoding("utf-8") from collections import Counter def func1(data_list): ''' 使用內置set方法去重 ''' return list(set(data_list)) def func2(data_list): ''' 借助字典方法fromkeys ''' return list({}.fromkeys(data_list).keys()) def func3(data_list): ''' 使用類列表推導式 ''' res_list=[] for one in data_list: if not one in res_list: res_list.append(one) return res_list def func4(data_list): ''' 使用sorted函數(其實本質上還是使用set方法進行的排序) ''' res_list=copy.deepcopy(data_list) res_list=sorted(set(data_list),key=data_list.index) return res_list def func5(data_list): ''' 使用"排序+計數"的方法 ''' result_list=[] temp_list=sorted(data_list) i=0 while i<len(temp_list): if temp_list[i] not in result_list: result_list.append(temp_list[i]) else: i+=1 return result_list def flagFunc(a): ''' 布爾函數 ''' if a in count_dict: count_dict[a]+=1 return False else: count_dict[a]=1 return True def func6(data_list): ''' 使用map方法 ''' global count_dict count_dict={} tmp_list=map(flagFunc,data_list) return [data_list[i] for i in range(len(data_list)) if tmp_list[i]] def func7(data_list): ''' 借助collections模塊中的Counter方法(頻度過濾方法) ''' fre_list=Counter(data_list).most_common(len(data_list)) return [one[0] for one in fre_list] if __name__=='__main__': data_list=[12,4,7,3,4,2,4,3,5,12,78,9,0,4,5,0,44,3] print func1(data_list) print func2(data_list) print func3(data_list) print func4(data_list) print func5(data_list) print func6(data_list) print func7(data_list)
結果如下:
[0, 2, 3, 4, 5, 7, 9, 12, 78, 44]
[0, 2, 3, 4, 5, 7, 9, 12, 78, 44]
[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
[0, 2, 3, 4, 5, 7, 9, 12, 44, 78]
[12, 4, 7, 3, 2, 5, 78, 9, 0, 44]
[4, 3, 0, 5, 12, 2, 7, 9, 78, 44]
果然還是很有意思的哈!
關于“Python怎么實現去除列表中重復元素功能”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。