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脚本生成Android SALT扰码的方法
Sep 18 Python
深入解析Python中的集合类型操作符
Aug 19 Python
详细分析python3的reduce函数
Dec 05 Python
Python数据结构与算法之图的基本实现及迭代器实例详解
Dec 12 Python
python 字典修改键(key)的几种方法
Aug 10 Python
Django对数据库进行添加与更新的例子
Jul 12 Python
Python实现制度转换(货币,温度,长度)
Jul 14 Python
python flask几分钟实现web服务的例子
Jul 26 Python
Python3进制之间的转换代码实例
Aug 24 Python
python yield和Generator函数用法详解
Feb 10 Python
Python json读写方式和字典相互转化
Apr 18 Python
Python的in,is和id函数代码实例
Apr 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实现zip压缩文件解压缩代码分享(简单易懂)
2014/05/10 PHP
destoon之一键登录设置
2014/06/21 PHP
phpstudy的php版本自由修改的方法
2017/10/18 PHP
TP5框架实现签到功能的方法分析
2020/04/05 PHP
引用外部脚本时script标签关闭的写法
2014/01/20 Javascript
深入理解关于javascript中apply()和call()方法的区别
2016/04/12 Javascript
Vuejs第七篇之Vuejs过渡动画案例全面解析
2016/09/05 Javascript
Angularjs 创建可复用组件实例代码
2016/10/09 Javascript
js监听键盘事件的方法_原生和jquery的区别详解
2016/10/10 Javascript
Vue.JS入门教程之事件监听
2016/12/01 Javascript
Bootstrap3下拉菜单的实现
2017/02/22 Javascript
微信小程序网络请求wx.request详解及实例
2017/05/18 Javascript
vue路由嵌套的SPA实现步骤
2017/11/06 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
jQuery中内容过滤器简单用法示例
2018/03/31 jQuery
微信小程序实现富文本图片宽度自适应的方法
2019/01/20 Javascript
vue 实现移动端键盘搜索事件监听
2019/11/06 Javascript
微信小程序自定义navigationBar顶部导航栏适配所有机型(附完整案例)
2020/04/26 Javascript
python调用cmd复制文件代码分享
2013/12/27 Python
Python的自动化部署模块Fabric的安装及使用指南
2016/01/19 Python
pygame 精灵的行走及二段跳的实现方法(必看篇)
2017/07/10 Python
python numpy数组的索引和切片的操作方法
2018/10/20 Python
Python基础之条件控制操作示例【if语句】
2019/03/23 Python
Python实现最常见加密方式详解
2019/07/13 Python
Django 拆分model和view的实现方法
2019/08/16 Python
使用python3 实现插入数据到mysql
2020/03/02 Python
使用CSS3制作一个简单的Chrome模拟器
2015/07/15 HTML / CSS
Qoo10马来西亚:全球时尚和引领潮流的购物市场
2016/08/25 全球购物
介绍下Java中==和equals的区别
2013/09/01 面试题
汽车运用工程毕业生自荐信
2013/10/29 职场文书
小学数学教学反思
2014/02/02 职场文书
教师爱岗敬业演讲稿
2014/05/05 职场文书
2014年学生会个人工作总结
2014/11/07 职场文书
2014年村党支部工作总结
2014/12/04 职场文书
个人年终总结范文
2015/03/09 职场文书
基于Java的MathML转图片的方法(示例代码)
2021/06/23 Java/Android