📜  Python中的intersection_update()查找n个数组中的公共元素

📅  最后修改于: 2022-05-13 01:54:48.880000             🧑  作者: Mango

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]