intersection_update() in Python to find common elements in n arrays
We are given list of n number of arrays, find all common elements in given arrays ? Examples:
Input : arr = [[1,2,3,4], [8,7,3,2], [9,2,6,3], [5,1,2,3]] Output : Common Elements = [2,3]
We can solve this problem quickly in python using intersection_update() method of Set() data structure. How intersection_update() works ?
Suppose we have two sets A and B, then A.intersection_update(B) operation updates set A with common elements in set A and B. For example, A=set([1,2,3]) and B=set([4,2,3]) now after taking A.intersection_update(B), value of set A will be [2,3]. Syntax is anySet.intersection_update(iterable).
Implementation:
Python3
# 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' ) |
Output
Common Element = [2, 3]