您好,登录后才能下订单哦!
密码登录
登录注册
点击 登录注册 即表示同意《亿速云用户服务条款》
这篇文章将为大家详细讲解有关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进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。