您的位置:首页 > 编程语言 > Python开发

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类型!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  python collections class