建德网站优化公司,小程序生成平台系统,seo网站项目,北京在线建站模板在python中#xff0c;如果有两个数组#xff0c;分别要求交集#xff0c;并集与差集#xff0c;怎么实现比较方便呢#xff1f;
当然最容易想到的是对两个数组做循环#xff0c;即写两个for循环来实现。这种写法大部分同学应该都会#xff0c;而且也没有太多的技术含量…在python中如果有两个数组分别要求交集并集与差集怎么实现比较方便呢
当然最容易想到的是对两个数组做循环即写两个for循环来实现。这种写法大部分同学应该都会而且也没有太多的技术含量下面介绍一些常用的方法。
# -*- encoding:utf-8 -*-
def diff(listA, listB):
# 交集方法1
retA [i for i in listA if i in listB]
# 交集方法2
retB list(set(listA).intersection(set(listB)))
print ---------交集--------
print retA:%s % retA
print retB%s % retB
# 并集
retC list(set(listA).union(set(listB)))
print ---------并集--------
print retC:%s % retC
# 差集 方法1 在B中不在A中
retD list(set(listB).difference(set(listA)))
print ---------差集方法1--------
print retD:%s % retD
# 差集 方法2 在B中不在A中
retE [i for i in listB if i not in listA]
print ---------差集方法2-----
print retE:%s % retE
if __name__ __main__:
listA [1, 2, 3, 4, 5]
listB [3, 4, 5, 6, 7]
diff(listA, listB)
结果如下图image.png
结合代码来看大体上是两种思路
1.使用列表解析式。列表解析式一般来说比循环更快。
2.将list转成set以后使用set的各种方法去处理。