1、我们先来看看python集合的去重的功能,如下我们定义一个数组,然后通过set集合来处理它l9=[3,1,4,5,6,5,5,5,5]s1=set(l9)print(s1)输出结果:set([1, 3, 4, 5, 6]),具体如下图所示:
2、以上是set集合处理list的结果,那对于一些字符串为元素的list是否可以处理呢,如下我们来定义一个list包含字符串l8=[1,'dfg','zjl','zjl','zjl','dfg']s2=set(l8)print(s2)输出:set([1, 'dfg', 'zjl']) 由此可以看出字符串元素也是可以去重的
3、下面我们来看看set集合首疏扌熘创建,添加元素的例子s3=set('myname')print(s3)观察print 输出:set(['y', 'a泌驾台佐39;, 'm', 'e', 'n']) 我们会发现创建的时候已经把重复的元素去除。对于集合的添加:s3.add(111)print(s3)s3.update('ssskkmm')print(s3)输出结果:set(['a', 'e', 'm', 111, 'y', 'n'])set(['a', 'e', 'k', 'm', 111, 's', 'y', 'n'])可以看出 add可以添加单一的元素,update会添加多个元素,并且去除了重复
4、接下来我们看看set集合的交集,逻辑上就和数舌哆猢筢学中的交集一样如下我们来通过小实列说明,如下我们定义两个集合s3=set('myname&垆杪屑丝#39;)s4=set('mycompany')print(s3)print(s4)s6=s3.intersection(s4) 求交集print(s6)输出结果:set(['y', 'a', 'm', 'e', 'n'])set(['a', 'c', 'm', 'o', 'n', 'p', 'y'])set(['y', 'a', 'm', 'n'])可以看出 最后结果是前面两个的公共元素组成的
5、下面我们在看看,set集合的差集(另一个中没有的元素),对称差集(不会同时出现在二者中),通过实列说明,如下所示我们通过4步骤中的两个集合来运算s7=s3.difference(s4) 差集print(s7)s8=s4.symmetric_difference(s3) 对称差集print(s8)输出:set(['e'])set(['c', 'e', 'o', 'p'])
6、接着我们看看它的并集,也就是把两个集合合并在一起的意思,再看看集合是否可以清除里面元素s9=s3.union(s4) 取并print(s9)s9.clear() 清除集合里面元素print(s9)输出结果:set(['a', 'c', 'e', 'm', 'o', 'n', 'p', 'y'])set([])
7、以上是基本的去重,实际项目中我们可能是要对一个字典类型的对象去重,如下我们来老揉孟阼写个实列先定义一个对象:obj1={泌驾台佐39;name':'zs','addr':'bj','age':'20','job':'bd'}对它进行去重处理:s12=set(o for k,o in obj1.items())print(s12)这样就可以对这些键值对中的元素去重输出:set(['bd', 'zs'])
8、如果我们要对set集合进行list转换,只需要做如下操作:send=list(s12) 转换为listprint(send)输出:['bd', 'zs']