Python删除列表重复数据以及效率问题
2015-05-30 23:16
645 查看
在列表去重中,根据其他语言的经验,比较容易想到的方式就是迭代删除以及set()方法。
列表总结起来处理无外乎 循环,排序,添加移除元素等操作,所以围绕这几方面考虑即可。
第二种方式,重新建立列表添加数据,逻辑清晰,效率也很不错。
第四种方式,比第一种方式多了一步转化,必然效率不如第一种。
第五种方式,临时变量消耗内存,效率较差。
列表总结起来处理无外乎 循环,排序,添加移除元素等操作,所以围绕这几方面考虑即可。
#coding=utf-8 ''' Created on 2015年5月30日 @author: frozen cloud ''' #原始列表 originalList = ['python','A','B','C','D','E','A','B','C','F'] #使用set()方法,生成一个无序不重复元素集,在海量数据去重问题中set的效率高于hash #sorted()方法有四个参数:sorted(iterable, cmp=None, key=None, reverse=False) #iterable迭代器,key列表元素的某属性作为关键字,cmp比较,比较的内容由key决定 #reverse排序规则,正序、反序,返回值为与iterable相同类型的排序结果 list1 = sorted(set(originalList),key = originalList.index) print list1 #迭代 list2 = [] for i in originalList: if not i in list2: list2.append(i) print list2 #集合转为列表,然后按照index排序 list3 = list(set(originalList)) list3.sort(key=originalList.index) print list3 #keys()方法返回字典的所有键 list4 = {}.fromkeys(originalList).keys() #转化为字典 print {}.fromkeys(originalList) print list4 #排序比较相邻元素,删除重复项 def sortlist(originalList): originalList.sort() last = originalList[-1] for i in range(len(originalList)-2,-1,-1): if originalList[i] == last: originalList.remove(originalList[i]) else: last=originalList[i] return originalList print sortlist(originalList)一次性运行结果如下:
['python', 'A', 'B', 'C', 'D', 'E', 'F'] ['python', 'A', 'B', 'C', 'D', 'E', 'F'] ['python', 'A', 'B', 'C', 'D', 'E', 'F'] {'A': None, 'C': None, 'B': None, 'E': None, 'D': None, 'F': None, 'python': None} ['A', 'C', 'B', 'E', 'D', 'F', 'python'] ['A', 'B', 'C', 'D', 'E', 'F', 'python']在以上去重方法中,第一种方式简洁高效,但是由于进行了排序,所以原有列表顺序被打乱。
第二种方式,重新建立列表添加数据,逻辑清晰,效率也很不错。
第四种方式,比第一种方式多了一步转化,必然效率不如第一种。
第五种方式,临时变量消耗内存,效率较差。
相关文章推荐
- 从底层理解Python的执行
- win32系统 python3.4 安装matplotlib
- Python进行中文注释
- python 轻量级邮件发送库
- 测试python awk sed 读取文件指定位置时的性能
- Python学习之路二
- 测试python awk sed 读取文件指定位置时的性能
- Python Template 错误
- 基于python的机器学习(一)
- Python2.7-异常和工具
- python学习笔记第一课_Phoenix-晶
- [笔记]python的os库
- Effective Python 条目二:遵循PEP8风格规约
- Python 中有关中文编码解码小记
- 在Python的Django框架下使用django-tagging的教程
- python 3 最简单的小爬虫
- 使用url_helper简化Python中Django框架的url配置教程
- 在Python的Django框架中simple-todo工具的简单使用
- <Python基础教程>_第四章_总结
- Python爬虫爬取网页图片