python对两个list取交集、并集、和异或

第一种方法:使用python基本数据结构set集合。
优点:集合运算长度可以不一致,运算效率高
缺点:两个进行运算的集合中不能够含有重复的元素,如果含有的话,转成set集合后,会自动去掉重复元素

a=[1,2,3]
b=[1,2,6,9,12]
print(set(a)&set(b))  #交集
print(set(a)|set(b))    #并集
print(set(a)^set(b))     #异或,就是两个集合去掉交集的那部分
print(set(a)-set(b))      #差集,就是a去掉b中元素剩下的那部分

第二种方法:使用for循环
优点:使用起来没啥局限性
缺点:运行效率慢,for循环
这里不补充代码了,根据自己实际情况来吧,这个好写,自己写就OK
第三种方法:使用torch的运算规则
优点:运行效率高
缺点:只能处理同样长度的tensor

import torch

a=torch.tensor([0,1,0,1,0])
b=torch.tensor([1,0,1,1,1])
print(a|b)   #并集
print(a&b)	#交集
print(a^b)   #异或集

你可能感兴趣的:(python,python)