python--删除队列重复元素
2015-12-05 14:49
549 查看
如何删除队列重复元素呢?简单地说,我们有两种实现的方法:
1.借助set函数先将列表转化为集合:
a=[1,3,1,2,4,2,5,6]
print(list(set(a)))
这种方法有两个局限:第一,转化后的list不再保持原有的顺序(因为set和dict一样是无序的);第二,如果列表中存在可变元素(list,dict,etc),那么也不能借助set来实现:
a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]
print(set(a))
报错:
TypeError: unhashable type: 'list
2.利用生成器:
a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]
def del_repeat(lst):
m=[]
for i in lst:
if i not in m:
yield i
m.append(i)
print(list(del_repeat(a)))运行结果:
[1, 3, 2, [4, 2], 5, 6, [2, 4]]
既保留了原有顺序,又解决了unhashable类型!
1.借助set函数先将列表转化为集合:
a=[1,3,1,2,4,2,5,6]
print(list(set(a)))
这种方法有两个局限:第一,转化后的list不再保持原有的顺序(因为set和dict一样是无序的);第二,如果列表中存在可变元素(list,dict,etc),那么也不能借助set来实现:
a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]
print(set(a))
报错:
TypeError: unhashable type: 'list
2.利用生成器:
a=[1,3,1,2,[4,2],5,[4,2],6,[2,4]]
def del_repeat(lst):
m=[]
for i in lst:
if i not in m:
yield i
m.append(i)
print(list(del_repeat(a)))运行结果:
[1, 3, 2, [4, 2], 5, 6, [2, 4]]
既保留了原有顺序,又解决了unhashable类型!
相关文章推荐
- Android Native 绘图方法
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python将excel导入到mysql中
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例