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操作日期和时间的方法
Mar 11 Python
python网络编程示例(客户端与服务端)
Apr 24 Python
python实现根据图标提取分类应用程序实例
Sep 28 Python
python在windows和linux下获得本机本地ip地址方法小结
Mar 20 Python
python使用append合并两个数组的方法
Apr 28 Python
python清除字符串里非字母字符的方法
Jul 02 Python
对python同一个文件夹里面不同.py文件的交叉引用方法详解
Dec 15 Python
python代码 FTP备份交换机配置脚本实例解析
Aug 01 Python
python实现在一个画布上画多个子图
Jan 19 Python
Python eval函数原理及用法解析
Nov 14 Python
python3爬虫中多线程的优势总结
Nov 24 Python
python爬虫框架feapde的使用简介
Apr 20 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
全局记录程序片段的运行时间 正确找到程序逻辑耗时多的断点
2011/01/06 PHP
PHP如何解决网站大流量与高并发的问题
2011/06/25 PHP
深入探讨:PHP使用数据库永久连接方式操作MySQL的是与非
2013/06/05 PHP
PHP字符串比较函数strcmp()和strcasecmp()使用总结
2014/11/19 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
2014/12/22 PHP
Laravel执行migrate命令提示:No such file or directory的解决方法
2016/03/16 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
JavaScript使用prototype定义对象类型
2007/02/07 Javascript
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
jquery之超简单的div显示和隐藏特效demo(分享)
2013/07/09 Javascript
js实现单击图片放大图片的方法
2015/02/17 Javascript
javascript解三阶幻方(九宫格)
2015/04/22 Javascript
JavaScript中的时间处理小结
2016/02/24 Javascript
谈谈对vue响应式数据更新的误解
2017/08/01 Javascript
ES6学习教程之模板字符串详解
2017/10/09 Javascript
浅析Visual Studio Code断点调试Vue
2018/02/27 Javascript
使用vue-aplayer插件时出现的问题的解决
2018/03/02 Javascript
vue ssr 实现方式(学习笔记)
2019/01/18 Javascript
基于JQuery实现页面定时弹出广告
2020/05/08 jQuery
实例讲解JavaScript 计时事件
2020/07/04 Javascript
[22:20]初生之犊-TI4第5名LGD战队纪录片
2014/08/13 DOTA
在Python中处理日期和时间的基本知识点整理汇总
2015/05/22 Python
Django框架实现的普通登录案例【使用POST方法】
2019/05/15 Python
Python 获取ftp服务器文件时间的方法
2019/07/02 Python
如何利用Python写个坦克大战
2020/11/18 Python
html5 初试 indexedDB(推荐)
2016/07/21 HTML / CSS
Zavvi美国:英国娱乐之家
2017/03/19 全球购物
国际性能运动服装品牌:Dare 2b
2018/07/27 全球购物
在C语言中实现抽象数据类型什么方法最好
2014/06/26 面试题
工程项目经理岗位职责
2013/12/15 职场文书
2016春季运动会通讯稿
2015/07/18 职场文书
公司周年庆典致辞
2015/07/30 职场文书
python如何在word中存储本地图片
2021/04/07 Python
Python Django 后台管理之后台模型属性详解
2021/04/25 Python
在项目中使用redis做缓存的一些思路
2021/09/14 Redis
教你使用RustDesk 搭建一个自己的远程桌面中继服务器
2022/08/14 Servers