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提取页面内url列表的方法
May 25 Python
Python实现的彩票机选器实例
Jun 17 Python
Python文件与文件夹常见基本操作总结
Sep 19 Python
用matplotlib画等高线图详解
Dec 14 Python
Flask框架实现的前端RSA加密与后端Python解密功能详解
Aug 13 Python
Python传递参数的多种方式(小结)
Sep 18 Python
python函数定义和调用过程详解
Feb 09 Python
jupyter lab文件导出/下载方式
Apr 22 Python
pycharm sciview的图片另存为操作
Jun 01 Python
tensorflow 2.1.0 安装与实战教程(CASIA FACE v5)
Jun 30 Python
opencv-python图像配准(匹配和叠加)的实现
Jun 23 Python
python绘制简单直方图(质量分布图)的方法
Apr 21 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/02/21 PHP
php递归删除目录与文件的方法
2015/01/30 PHP
php生成图片验证码
2015/06/09 PHP
Windows下PHP开发环境搭建教程(Apache+PHP+MySQL)
2016/06/13 PHP
浅谈PHP中关于foreach使用引用变量的坑
2016/11/14 PHP
laravel执行php artisan migrate报错的解决方法
2019/10/09 PHP
再谈ie和firefox下的document.all属性
2009/10/21 Javascript
js 弹出框只弹一次(二次修改之后的)
2013/11/26 Javascript
js读取配置文件自写
2014/02/11 Javascript
jQuery设置和获取HTML、文本和值示例
2014/07/08 Javascript
一个JavaScript用逗号分割字符串实例
2014/09/22 Javascript
基于JavaScript代码实现兼容各浏览器的设为首页和加入收藏
2016/01/07 Javascript
javascript 小数乘法结果错误的处理方法
2016/07/28 Javascript
html、css和jquery相结合实现简单的进度条效果实例代码
2016/10/24 Javascript
AngularJS使用拦截器实现的loading功能完整实例
2017/05/17 Javascript
Angular在模板驱动表单中自定义校验器的方法
2017/08/09 Javascript
react-native使用react-navigation进行页面跳转导航的示例
2017/09/07 Javascript
深入理解JS中Number(),parseInt(),parseFloat()三者比较
2018/08/24 Javascript
Vue自定义指令写法与个人理解
2019/02/09 Javascript
Vue 子组件与数据传递问题及注意事项
2019/07/11 Javascript
微信小程序导入Vant报错VM292:1 thirdScriptError的解决方法
2019/08/01 Javascript
解决layui中onchange失效以及form动态渲染失效的问题
2019/09/27 Javascript
vue表单验证之禁止input输入框输入空格
2020/12/03 Vue.js
Python的subprocess模块总结
2014/11/07 Python
使用pandas对矢量化数据进行替换处理的方法
2018/04/11 Python
Python3随机漫步生成数据并绘制
2018/08/27 Python
Python numpy线性代数用法实例解析
2019/11/15 Python
解决Keras中Embedding层masking与Concatenate层不可调和的问题
2020/06/18 Python
基于HTML5 audio元素播放声音jQuery小插件
2011/05/11 HTML / CSS
戴森西班牙官网:Dyson西班牙
2020/02/04 全球购物
会计毕业生求职简历的自我评价
2013/10/20 职场文书
群众路线问题查摆对照检查材料
2014/10/04 职场文书
大学生档案自我鉴定(2篇)
2014/10/14 职场文书
黄石寨导游词
2015/02/05 职场文书
网聊搭讪开场白
2015/05/28 职场文书
Java输出Hello World完美过程解析
2021/06/13 Java/Android