python--删除队列重复元素

如何删除队列重复元素呢?简单地说,我们有两种实现的方法:

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
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值