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正则表达式抓取成语网站
Nov 20 Python
python中self原理实例分析
Apr 30 Python
简介Django框架中可使用的各类缓存
Jul 23 Python
使用Python编写基于DHT协议的BT资源爬虫
Mar 19 Python
Python实现Logger打印功能的方法详解
Sep 01 Python
Python基于socket模块实现UDP通信功能示例
Apr 10 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
计算机二级python学习教程(2) python语言基本语法元素
May 16 Python
Python使用微信itchat接口实现查看自己微信的信息功能详解
Aug 22 Python
Python threading的使用方法解析
Aug 28 Python
Python模块future用法原理详解
Jan 20 Python
Python基于time模块表示时间常用方法
Jun 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转义输出HTML到JavaScript
2015/03/27 PHP
PHP获取网站中各文章的第一张图片的代码示例
2016/05/20 PHP
详解PHP PDO简单教程
2019/05/28 PHP
laravel5.5添加echarts实现画图功能的方法
2019/10/09 PHP
Laravel Eloquent分表方法并使用模型关联的实现
2019/11/25 PHP
php post换行的方法
2020/02/03 PHP
跟随鼠标旋转的文字
2006/11/30 Javascript
PPK 谈 JavaScript 的 this 关键字 [翻译]
2009/09/29 Javascript
js拖拽一些常见的思路方法整理
2014/03/19 Javascript
使用jQuery的attr方法来修改onclick值
2014/07/07 Javascript
什么是MEAN?JavaScript编程中的MEAN是什么意思?
2014/12/18 Javascript
NodeJS学习笔记之(Url,QueryString,Path)模块
2015/01/13 NodeJs
javascript 中的console.log和弹出窗口alert
2016/08/30 Javascript
js实现上下左右弹框划出效果
2017/03/08 Javascript
利用NPM淘宝的node.js镜像加速nvm
2017/03/27 Javascript
jquery插件开发之选项卡制作详解
2017/08/30 jQuery
JavaScript实现的简单Tab点击切换功能示例
2018/07/06 Javascript
vue如何限制只能输入正负数及小数
2019/07/04 Javascript
layui使用label标签的方法
2019/09/14 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
微信小程序 wx:for 与 wx:for-items 与 wx:key的正确用法
2020/05/19 Javascript
[01:07:17]EG vs Optic Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
基于Python如何使用AIML搭建聊天机器人
2016/01/27 Python
深入理解Python3中的http.client模块
2017/03/29 Python
python协程gevent案例 爬取斗鱼图片过程解析
2019/08/27 Python
python程序 线程队列queue使用方法解析
2019/09/23 Python
python调用接口的4种方式代码实例
2019/11/19 Python
python ETL工具 pyetl
2020/06/07 Python
Python实现钉钉/企业微信自动打卡的示例代码
2021/02/02 Python
网游商务专员求职信
2013/10/15 职场文书
校园文明标语
2014/06/13 职场文书
2015小学五年级班主任工作总结
2015/05/21 职场文书
四大名著读书笔记
2015/06/25 职场文书
详解MySQL多版本并发控制机制(MVCC)源码
2021/06/23 MySQL
springboot读取nacos配置文件
2022/05/20 Java/Android
Android开发手册TextInputLayout样式使用示例
2022/06/10 Java/Android