Python实现两个list求交集,并集,差集的方法示例
本文实例讲述了Python实现两个list求交集,并集,差集的方法。分享给大家供大家参考,具体如下:
在python中,数组可以用list来表示。如果有两个数组,分别要求交集,并集与差集,怎么实现比较方便呢?
当然最容易想到的是对两个数组做循环,即写两个for循环来实现。这种写法大部分同学应该都会,而且也没有太多的技术含量,本博主就不解释了。这里给大家使用更为装bility的一些方法。
老规矩,talkischeap,showmethecode
#!/usr/bin/envpython #coding:utf-8 ''' Createdon2016年6月9日 @author:lei.wang ''' defdiff(listA,listB): #求交集的两种方式 retA=[iforiinlistAifiinlistB] retB=list(set(listA).intersection(set(listB))) print"retAis:",retA print"retBis:",retB #求并集 retC=list(set(listA).union(set(listB))) print"retC1is:",retC #求差集,在B中但不在A中 retD=list(set(listB).difference(set(listA))) print"retDis:",retD retE=[iforiinlistBifinotinlistA] print"retEis:",retE defmain(): listA=[1,2,3,4,5] listB=[3,4,5,6,7] diff(listA,listB) if__name__=='__main__': main()
让coderun起来
retAis: [3,4,5]
retBis: [3,4,5]
retC1is: [1,2,3,4,5,6,7]
retDis: [6,7]
retEis: [6,7]
结合代码来看,大体上是两种思路:
1.使用列表解析式。列表解析式一般来说比循环更快,而且更pythonic显得更牛逼。
2.将list转成set以后,使用set的各种方法去处理。
更多关于Python相关内容可查看本站专题:《Python列表(list)操作技巧总结》、《Python字符串操作技巧汇总》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》
希望本文所述对大家Python程序设计有所帮助。