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使用matplotlib实现在坐标系中画一个矩形的方法
May 20 Python
Python编程实现粒子群算法(PSO)详解
Nov 13 Python
python3.6利用pyinstall打包py为exe的操作实例
Oct 31 Python
在pandas多重索引multiIndex中选定指定索引的行方法
Nov 16 Python
python使用KNN算法识别手写数字
Apr 25 Python
python3.7简单的爬虫实例详解
Jul 08 Python
PowerBI和Python关于数据分析的对比
Jul 11 Python
django 消息框架 message使用详解
Jul 22 Python
Python3操作YAML文件格式方法解析
Apr 10 Python
jupyter notebook oepncv 显示一张图像的实现
Apr 24 Python
python打包多类型文件的操作方法
Sep 21 Python
python实现计算图形面积
Feb 22 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 数组遍历方法大全(foreach,list,each)
2010/06/30 PHP
php实现信用卡校验位算法THE LUHN MOD-10示例
2014/05/07 PHP
php实现等比例压缩图片
2018/07/26 PHP
js兼容标准的表格变色效果
2008/06/28 Javascript
Prototype Number对象 学习
2009/07/19 Javascript
javascript中日期转换成时间戳的小例子
2013/03/21 Javascript
深入解析contentWindow, contentDocument
2013/07/04 Javascript
Javascript 函数parseInt()转换时出现bug问题
2014/05/20 Javascript
AngularJS语法详解(续)
2015/01/23 Javascript
详解Vue路由History mode模式中页面无法渲染的原因及解决
2017/09/28 Javascript
jquery一键控制checkbox全选、反选或全不选
2017/10/16 jQuery
nodejs 简单实现动态html的方法
2018/05/12 NodeJs
详解vue-cli 本地开发mock数据使用方法
2018/05/29 Javascript
详解基于Vue,Nginx的前后端不分离部署教程
2018/12/04 Javascript
angular6 填坑之sdk的方法
2018/12/27 Javascript
JS数组Object.keys()方法的使用示例
2019/06/05 Javascript
[14:20]刀塔大凶女神互压各路奇葩屌丝
2014/05/16 DOTA
[01:01:25]DOTA2上海特级锦标赛B组资格赛#2 Fnatic VS Spirit第三局
2016/02/27 DOTA
python通过线程实现定时器timer的方法
2015/03/16 Python
Django的URLconf中使用缺省视图参数的方法
2015/07/18 Python
Python读取YUV文件,并显示的方法
2018/12/04 Python
Python+OpenCV图片局部区域像素值处理详解
2019/01/23 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Python基于BeautifulSoup和requests实现的爬虫功能示例
2019/08/02 Python
Python操作Sqlite正确实现方法解析
2020/02/05 Python
python2 对excel表格操作完整示例
2020/02/23 Python
Python 定义只读属性的实现方式
2020/03/05 Python
pycharm Tab键设置成4个空格的操作
2021/02/26 Python
分享CSS3中必须要知道的10个顶级命令
2012/04/26 HTML / CSS
CSS3模拟IOS滑动开关效果
2016/09/28 HTML / CSS
爱岗敬业事迹材料
2014/12/24 职场文书
宿舍卫生管理制度
2015/08/05 职场文书
python numpy中setdiff1d的用法说明
2021/04/22 Python
《辉夜大小姐想让我告白》第三季正式预告
2022/03/20 日漫
ubuntu下常用apt命令介绍
2022/06/05 Servers
关于MySQL中explain工具的使用
2023/05/08 MySQL