Python中利用set去除列表(list)重复元素

Python的set类型和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。

    如果我们要处理一些数据,需要去除掉重复元素,比如列表a = [5, 2, 5, 1, 4, 3, 4],可以用如下方式实现

 
 
  1. a = [5251434]  
  2. print list(set(a)) 

    Python中set集合对象还支持union(联合[|])、intersection(交[&])、difference(差[-])和sysmmetric difference(对称差集^)等数学运算。如下:

 
 
  1. a = set('abracadabra')  
  2. b = set('alacazam')  
  3.  
  4. # a包含且b包含的字符  
  5. print a & b  
  6. print a.intersection(b)  
  7. # a包含或b包含的字符  
  8. print a | b  
  9. print a.union(b)  
  10. # a包含且b不包含的字符  
  11. print a - b  
  12. print a.difference(b)  
  13. # a包含且b不包含的字符和b包含且a不包含的字符  
  14. print a ^ b  
  15. print a.symmetric_difference(b) 

     当然,Python中关于set的操作类型还有很多,这里就不一一列举了。如果一个文本中有重复的元素,我们应该如何去除呢,文本内容如下:

 
 
  1. [root@linuxidc ]# cat done.txt   
  2. linuxidc  
  3. linuxidc  
  4. linuxidc  
  5.  
  6. http://www.linuxidc.com/  
  7. http://www.linuxidc.com/ 

    Python利用set去除重复元素的方式,如下:

 
 
  1. In [1]: print '\n'.join(set(open('done.txt').read().split('\n')))  
  2.  
  3. linuxidc  
  4. http://www.linuxidc.com/  
  5.  
  6. In [2]: print ''.join(set([x for x in open('done.txt').readlines() if x.strip()!='']))  
  7. linuxidc  
  8. http:///www.linuxidc.com/ 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值