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

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

2015-08-25 20:38 435 查看
Python的set类型和其他语言类似,是一个无序不重复元素集,基本功能包括关系测试和消除重复元素。

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

    Python中set集合对象还支持union(联合[|])、intersection(交[&])、difference(差[-])和sysmmetric difference(对称差集^)等数学运算。如下:
a = set('abracadabra')  
b = set('alacazam')  
 
# a包含且b包含的字符  
print a & b  
print a.intersection(b)  
# a包含或b包含的字符  
print a | b  
print a.union(b)  
# a包含且b不包含的字符  
print a - b  
print a.difference(b)  
# a包含且b不包含的字符和b包含且a不包含的字符  
print a ^ b  
print a.symmetric_difference(b) 

     当然,Python中关于set的操作类型还有很多,这里就不一一列举了。如果一个文本中有重复的元素,我们应该如何去除呢,文本内容如下:
[root@linuxidc ]# cat done.txt   
linuxidc  
linuxidc  
linuxidc  
  http://www.linuxidc.com/   http://www.linuxidc.com/ 
    Python利用set去除重复元素的方式,如下:
In [1]: print '\n'.join(set(open('done.txt').read().split('\n')))  
 
linuxidc   http://www.linuxidc.com/  
 
In [2]: print ''.join(set([x for x in open('done.txt').readlines() if x.strip()!='']))  
linuxidc   http:///www.linuxidc.com/ 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: