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之入门(三)序列
May 25 Python
使用python绘制常用的图表
Aug 27 Python
Python操作MySQL数据库的三种方法总结
Jan 30 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 Python
python移位运算的实现
Jul 15 Python
解决Python3 抓取微信账单信息问题
Jul 19 Python
Python中base64与xml取值结合问题
Dec 22 Python
Python语法垃圾回收机制原理解析
Mar 25 Python
Tensorflow中的降维函数tf.reduce_*使用总结
Apr 20 Python
Pytorch实现将模型的所有参数的梯度清0
Jun 24 Python
Python fileinput模块如何逐行读取多个文件
Oct 05 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 文件缓存的性能测试
2010/04/25 PHP
fgetcvs在linux的问题
2012/01/15 PHP
php字符串过滤与替换小结
2015/01/26 PHP
php metaphone()函数的定义和用法
2016/05/15 PHP
thinkphp跨库操作的简单代码实例
2016/09/22 PHP
javascript中的几个运算符
2007/06/29 Javascript
javascript 进阶篇1 正则表达式,cookie管理,userData
2012/03/14 Javascript
基于jQuery的倒计时实现代码
2012/05/30 Javascript
jquery入门—选择器实现隔行变色实例代码
2013/01/04 Javascript
jquery文本框中的事件应用以输入邮箱为例
2014/05/06 Javascript
Jquery动态添加及删除页面节点元素示例代码
2014/06/16 Javascript
KVM虚拟化技术之使用Qemu-kvm创建和管理虚拟机的方法
2016/10/05 Javascript
canvas实现手机端用来上传用户头像的代码
2016/10/20 Javascript
解决angularjs中同步执行http请求的方法
2018/08/13 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
vue多层嵌套路由实例分析
2019/03/19 Javascript
vue 返回上一页,页面样式错乱的解决
2019/11/14 Javascript
一篇不错的Python入门教程
2007/02/08 Python
python解析模块(ConfigParser)使用方法
2013/12/10 Python
python实现根据窗口标题调用窗口的方法
2015/03/13 Python
使用matplotlib画散点图的方法
2018/05/25 Python
Python中fnmatch模块的使用详情
2018/11/30 Python
python实现烟花小程序
2019/01/30 Python
win10系统Anaconda和Pycharm的Tensorflow2.0之CPU和GPU版本安装教程
2019/12/03 Python
使用Python实现分别输出每个数组
2019/12/06 Python
Python反爬虫伪装浏览器进行爬虫
2020/02/28 Python
skyn ICELAND官网:冰岛成分天然护肤品
2020/08/24 全球购物
财务学生的职业生涯发展
2014/02/11 职场文书
采购助理岗位职责
2014/02/16 职场文书
乡镇领导干部个人对照检查材料思想汇报
2014/09/23 职场文书
2014年小学数学工作总结
2014/12/12 职场文书
环保建议书范文
2015/09/14 职场文书
八年级历史教学反思
2016/02/19 职场文书
详解Java实践之适配器模式
2021/06/18 Java/Android
Pandas自定义选项option设置
2021/07/25 Python
java如何实现获取客户端ip地址的示例代码
2022/04/07 Java/Android