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生成日历实例解析
Aug 21 Python
python检查指定文件是否存在的方法
Jul 06 Python
python解析html提取数据,并生成word文档实例解析
Jan 22 Python
Django跨域请求CSRF的方法示例
Nov 11 Python
解决python 未发现数据源名称并且未指定默认驱动程序的问题
Dec 07 Python
使用python进行波形及频谱绘制的方法
Jun 17 Python
python实现的汉诺塔算法示例
Oct 23 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
Feb 11 Python
python 实现字符串下标的输出功能
Feb 13 Python
通过实例解析python subprocess模块原理及用法
Oct 10 Python
python可视化分析的实现(matplotlib、seaborn、ggplot2)
Feb 03 Python
Golang Web 框架Iris安装部署
Aug 14 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
利用static实现表格的颜色隔行显示
2006/10/09 PHP
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
php iconv() : Detected an illegal character in input string
2010/12/05 PHP
调整优化您的LAMP应用程序的5种简单方法
2011/06/26 PHP
PHP用身份证号获取星座和生肖的方法
2013/11/07 PHP
配置Nginx+PHP的正确思路与过程
2016/05/10 PHP
CI框架整合smarty步骤详解
2016/05/19 PHP
JS删除字符串中重复字符方法
2014/03/09 Javascript
js实现div弹出层的方法
2014/11/20 Javascript
Javascript数组与字典用法分析
2014/12/13 Javascript
javascript中的遍历for in 以及with的用法
2014/12/22 Javascript
jq实现左侧显示图片右侧文字滑动切换效果
2015/08/04 Javascript
JS字符串去除连续或全部重复字符的实例
2018/03/08 Javascript
vue + vuex todolist的实现示例代码
2018/03/09 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
vue axios封装httpjs,接口公用配置拦截操作
2020/08/11 Javascript
js实现鼠标切换图片(无定时器)
2021/01/27 Javascript
Python中%是什么意思?python中百分号如何使用?
2018/03/20 Python
Python编程在flask中模拟进行Restful的CRUD操作
2018/12/28 Python
Python 3.8中实现functools.cached_property功能
2019/05/29 Python
浅析matlab中imadjust函数
2020/02/27 Python
Python标准库shutil模块使用方法解析
2020/03/10 Python
python 爬虫请求模块requests详解
2020/12/04 Python
使用canvas来完成线性渐变和径向渐变的功能的方法示例
2019/07/25 HTML / CSS
市场部专员岗位职责
2013/11/30 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
小学生学雷锋演讲稿
2014/04/25 职场文书
中职三好学生事迹材料
2014/08/24 职场文书
开展党的群众路线教育实践活动总结报告
2014/10/31 职场文书
中学感恩教育活动总结
2015/05/05 职场文书
无房证明样本
2015/06/17 职场文书
Python获取百度热搜的完整代码
2021/04/07 Python
pytorch 如何使用batch训练lstm网络
2021/05/28 Python
Redis Cluster集群动态扩容的实现
2021/07/15 Redis
CSS3实现360度循环旋转功能
2022/02/12 HTML / CSS