Python中的intersection_update()查找n个数组中的公共元素
我们得到了 n 个数组的列表,找到给定数组中的所有公共元素?
例子:
Input : arr = [[1,2,3,4],
[8,7,3,2],
[9,2,6,3],
[5,1,2,3]]
Output : Common Elements = [2,3]
我们可以在Python中使用 Set() 数据结构的intersection_update() 方法快速解决这个问题。
intersection_update() 如何工作?
假设我们有两个集合 A 和 B,那么 A.intersection_update(B) 操作用集合 A 和 B 中的公共元素更新集合 A。例如,A=set([1,2,3]) 和 B=set([ 4,2,3]) 现在在采取A.intersection_update(B)之后,集合 A 的值将是 [2,3]。语法是anySet.intersection_update(iterable) 。
# Function to find common elements in n arrays
def commonElements(arr):
# initialize result with first array as a set
result = set(arr[0])
# now iterate through list of arrays starting from
# second array and take intersection_update() of
# each array with result. Every operation will
# update value of result with common values in
# result set and intersected set
for currSet in arr[1:]:
result.intersection_update(currSet)
return list(result)
# Driver code
if __name__ == "__main__":
arr = [[1,2,3,4], [8,7,3,2], [9,2,6,3], [5,1,2,3]]
output = commonElements(arr)
if len(output) > 0:
print ("Common Element = ",output)
else:
print ('No Common Elements Found')
输出:
Common Elements = [2,3]