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调用cmd复制文件代码分享
Dec 27 Python
用实例详解Python中的Django框架中prefetch_related()函数对数据库查询的优化
Apr 01 Python
在Python中使用next()方法操作文件的教程
May 24 Python
Python base64编码解码实例
Jun 21 Python
Python实现命令行通讯录实例教程
Aug 18 Python
Python获取系统所有进程PID及进程名称的方法示例
May 24 Python
Python图像处理之图像的读取、显示与保存操作【测试可用】
Jan 04 Python
Python连接字符串过程详解
Jan 06 Python
Docker部署Python爬虫项目的方法步骤
Jan 19 Python
Tensorflow中tf.ConfigProto()的用法详解
Feb 06 Python
使用python实现微信小程序自动签到功能
Apr 27 Python
Python识别验证码的实现示例
Sep 30 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
PHP中的float类型使用说明
2010/07/27 PHP
PHP里的中文变量说明
2011/07/23 PHP
javascript concat数组累加 示例
2009/09/03 Javascript
Mootools 1.2教程(21)——类(二)
2009/09/15 Javascript
javascript forEach通用循环遍历方法
2010/10/11 Javascript
仅IE支持clearAttributes/mergeAttributes方法使用介绍
2012/05/04 Javascript
20款非常优秀的 jQuery 工具提示插件 推荐
2012/07/15 Javascript
jQuery大于号(&gt;)选择器的作用解释
2015/01/13 Javascript
jquery.mousewheel实现整屏翻屏效果
2015/08/30 Javascript
浅析Bootstrap缩略图组件与警示框组件
2016/04/29 Javascript
javascript截图 jQuery插件imgAreaSelect使用详解
2016/05/04 Javascript
微信小程序 实例应用(记账)详解
2016/09/28 Javascript
JavaScript的new date等日期函数在safari中遇到的坑
2016/10/24 Javascript
基于JQuery的Ajax方法使用详解
2017/08/16 jQuery
详解vue 模拟后台数据(加载本地json文件)调试
2017/08/25 Javascript
原生js实现拖拽功能基本思路详解
2018/04/18 Javascript
vue移动端路由切换实例分析
2018/05/14 Javascript
Vue实现移动端左右滑动效果的方法
2018/11/27 Javascript
Vue中的情侣属性$dispatch和$broadcast详解
2019/03/07 Javascript
详解微信小程序之一键复制到剪切板
2019/04/24 Javascript
基于Element封装一个表格组件tableList的使用方法
2020/06/29 Javascript
Python中关于Sequence切片的下标问题详解
2017/06/15 Python
pandas将DataFrame的列变成行索引的方法
2018/04/10 Python
在Python中实现shuffle给列表洗牌
2018/11/08 Python
总结python中pass的作用
2019/02/27 Python
html5基础教程常用技巧整理
2013/08/20 HTML / CSS
美国著名的品牌折扣店:Burlington
2017/06/08 全球购物
怀俄明州飞钓:Platte River Fly Shop
2017/12/28 全球购物
土耳其风格手工珠宝:Ottoman Hands
2019/07/26 全球购物
为什么需要版本控制?
2013/08/08 面试题
表彰先进集体通报
2014/01/12 职场文书
《分一分》教学反思
2014/04/13 职场文书
村长反四风问题个人对照检查材料
2014/09/21 职场文书
2014年个人工作总结模板
2014/12/15 职场文书
golang实现浏览器导出excel文件功能
2022/03/25 Golang
Mysql将字符串按照指定字符分割的正确方法
2022/05/30 MySQL