Python实现去除列表中重复元素的方法总结【7种方法】


Posted in Python onFebruary 16, 2019

这里首先给出来我很早之前写的一篇博客,Python实现去除列表中重复元素的方法小结【4种方法】,感兴趣的话可以去看看,今天是在实践过程中又积累了一些方法,这里一并总结放在这里。

由于内容很简单,就不再过多说明了,这里直接上代码,具体如下:

# !/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 相关文章推荐
Python中的默认参数详解
Jun 24 Python
【Python】Python的urllib模块、urllib2模块批量进行网页下载文件
Nov 19 Python
Python爬虫天气预报实例详解(小白入门)
Jan 24 Python
高效使用Python字典的清单
Apr 04 Python
python实现计数排序与桶排序实例代码
Mar 28 Python
Python3.5 Pandas模块之Series用法实例分析
Apr 23 Python
Python自动化之数据驱动让你的脚本简洁10倍【推荐】
Jun 04 Python
python 实现方阵的对角线遍历示例
Nov 29 Python
python自动化unittest yaml使用过程解析
Feb 03 Python
简单的Python人脸识别系统
Jul 14 Python
详解python tkinter 图片插入问题
Sep 03 Python
Python实现为PDF去除水印的示例代码
Apr 03 Python
Python字符串逆序输出的实例讲解
Feb 16 #Python
强悍的Python读取大文件的解决方案
Feb 16 #Python
Python基础之文件读取的讲解
Feb 16 #Python
解决Python3 被PHP程序调用执行返回乱码的问题
Feb 16 #Python
Python3 修改默认环境的方法
Feb 16 #Python
Python3 pip3 list 出现 DEPRECATION 警告的解决方法
Feb 16 #Python
对Python3 解析html的几种操作方式小结
Feb 16 #Python
You might like
PHP5+UTF8多文件上传类
2008/10/17 PHP
解析php中反射的应用
2013/06/18 PHP
PHP-FPM之Chroot执行环境详解
2015/08/03 PHP
PHP实现的超长文本分页显示功能示例
2018/06/04 PHP
JavaScript 拖拉缩放效果
2008/12/10 Javascript
js获取对象为null的解决方法
2013/11/21 Javascript
js插件方式打开pdf文件(浏览器pdf插件分享)
2013/12/20 Javascript
JQuery+Ajax无刷新分页的实例代码
2014/02/08 Javascript
jQuery学习总结之jQuery事件
2014/06/30 Javascript
jquery的幻灯片图片切换效果代码分享
2015/09/07 Javascript
js ajaxfileupload.js上传报错的解决方法
2016/05/05 Javascript
全面理解闭包机制
2016/07/11 Javascript
jquery实现表单获取短信验证码代码
2017/03/13 Javascript
JavaScript中清空数组的三种方式
2017/03/22 Javascript
JavaScript 隐性类型转换步骤浅析
2018/03/15 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
2018/03/26 Javascript
js实现多个倒计时并行 js拼团倒计时
2019/02/25 Javascript
Vue2.0+Vux搭建一个完整的移动webApp项目的示例
2019/03/19 Javascript
Vue实现拖放排序功能的实例代码
2019/07/08 Javascript
QML实现圆环颜色选择器
2019/09/25 Javascript
在Layui中实现开关按钮的效果实例
2019/09/29 Javascript
微信小程序实现组件顶端固定或底端固定效果(不随滚动而滚动)
2020/04/09 Javascript
[07:09]2014DOTA2国际邀请赛-Newbee再次发威成功晋级决赛
2014/07/19 DOTA
在GitHub Pages上使用Pelican搭建博客的教程
2015/04/25 Python
Django admin实现图书管理系统菜鸟级教程完整实例
2017/12/12 Python
教你使用python实现微信每天给女朋友说晚安
2018/03/23 Python
Python实现的列表排序、反转操作示例
2019/03/13 Python
python Event事件、进程池与线程池、协程解析
2019/10/25 Python
利用HTML5 Canvas制作一个简单的打飞机游戏
2015/05/11 HTML / CSS
人力资源管理专业毕业生推荐信
2013/11/07 职场文书
2014乡镇机关党员个人对照检查材料思想汇报
2014/10/09 职场文书
新党章的学习心得体会
2014/11/07 职场文书
2014年财政局工作总结
2014/12/09 职场文书
开学第一周值周总结
2015/07/16 职场文书
python 命令行传参方法总结
2021/05/25 Python
Ruby处理CSV数据方法详解
2022/04/18 Ruby