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中如何获取类属性的列表
Dec 26 Python
python利用dir函数查看类中所有成员函数示例代码
Sep 08 Python
python监控文件并且发送告警邮件
Jun 21 Python
对Python2与Python3中__bool__方法的差异详解
Nov 01 Python
Pandas过滤dataframe中包含特定字符串的数据方法
Nov 07 Python
Python操作mongodb数据库的方法详解
Dec 08 Python
Python通过TensorFlow卷积神经网络实现猫狗识别
Mar 14 Python
Python处理时间日期坐标轴过程详解
Jun 25 Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 Python
详解基于Scrapy的IP代理池搭建
Sep 29 Python
python关于倒排列的知识点总结
Oct 13 Python
python爬虫实现爬取同一个网站的多页数据的实例讲解
Jan 18 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实现将科学计数法转换为原始数字字符串的方法
2014/12/16 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
JavaScript高级程序设计 阅读笔记(七) ECMAScript中的语句
2012/02/27 Javascript
使用jQuery Ajax功能时需要注意的一个问题(内存溢出)
2012/05/30 Javascript
使用AngularJS处理单选框和复选框的简单方法
2015/06/19 Javascript
图解JavaScript中的this关键字
2020/05/28 Javascript
Vue.js每天必学之组件与组件间的通信
2016/09/08 Javascript
详解用原生JavaScript实现jQuery的某些简单功能
2016/12/19 Javascript
详解JavaScript树结构
2017/01/09 Javascript
vue.js之vue-cli脚手架的搭建详解
2017/05/05 Javascript
vue loadmore组件上拉加载更多功能示例代码
2017/07/19 Javascript
浅谈JavaScript中的属性:如何遍历属性
2017/09/14 Javascript
ligerUI---ListBox(列表框可移动的实例)
2017/11/28 Javascript
vue.js2.0 实现better-scroll的滚动效果实例详解
2018/08/13 Javascript
vue 自定义指令自动获取文本框焦点的方法
2018/08/25 Javascript
安装多版本Vue-CLI的实现方法
2020/03/24 Javascript
[01:04:32]DOTA2-DPC中国联赛 正赛 Aster vs LBZS BO3 第二场 2月23日
2021/03/11 DOTA
把项目从Python2.x移植到Python3.x的经验总结
2015/04/20 Python
Python中死锁的形成示例及死锁情况的防止
2016/06/14 Python
教你用Python脚本快速为iOS10生成图标和截屏
2016/09/22 Python
tensorflow实现读取模型中保存的值 tf.train.NewCheckpointReader
2020/02/10 Python
python数据库编程 Mysql实现通讯录
2020/03/27 Python
python 使用elasticsearch 实现翻页的三种方式
2020/07/31 Python
python中sys模块是做什么用的
2020/08/16 Python
利用CSS3的transition属性实现滑动效果
2015/08/05 HTML / CSS
标记环网Toke Ring IEEE802.5
2014/05/26 面试题
小班秋游活动方案
2014/02/22 职场文书
品牌宣传方案
2014/03/21 职场文书
报考公务员诚信承诺书
2014/08/29 职场文书
2019单位介绍信怎么写
2019/06/24 职场文书
Mysql 性能监控及调优
2021/04/06 MySQL
Python还能这么玩之用Python修改了班花的开机密码
2021/06/04 Python
python基础之类属性和实例属性
2021/10/24 Python
python人工智能human learn绘图可创建机器学习模型
2021/11/23 Python
Redis监控工具RedisInsight安装与使用
2022/03/21 Redis
Python通过loop.run_in_executor执行同步代码 同步变为异步
2022/04/11 Python