Python 查找公共数组元素

Python 查找公共数组元素

在考虑多维数组的情况下,有一种方法可以找到多维数组中的公共元素 – intersection_update()。

这种方法用于找到同一多维数组中存在的公共或相交的元素。让我们先考虑一个输入输出场景,然后再进行编程。

输入输出场景

考虑一个多维数组的2D数组。

arr = [[1, 2, 3, 4], [3, 4, 5, 6], [7, 8, 3, 4], [4, 9, 8, 3], [4, 3, 10, 12]]
  • 上述数组由5个子数组组成。

  • 我们可以明显观察到元素“3”和“4”存在于“arr”的所有子数组中。

  • 因此,元素“3”和“4”被认为是二维数组arr的公共元素。

示例

在这个示例中,我们将使用intersection_update()方法找到多维数组中的公共元素。

  • 考虑一个可以找到公共元素的二维数组。

  • 声明一个参数化方法,该方法可以将二维数组作为参数来找到公共元素。

  • 在方法内部,用0初始化set数组,并将其赋值给一个变量。

  • 使用循环遍历数组的元素。

  • 在遍历过程中,使用intersection_update()方法依次找到公共元素。

def common_elements(arr):
   result = set(arr[0])
   for x in arr[1:]:
      result.intersection_update(x) 
   return list(result)
# main section
if __name__ == "__main__":

   arr = [[1, 2, 3, 4], [3, 4, 5, 6], [7, 8, 3, 4], [4, 9, 8, 3], [4, 3, 10, 12]]
   res = common_elements(arr)
   if len(res) > 0:
      print ("The common elements present within the array are: ",res)

   else:
      print ("There are no common elements present within the array !!")

输出

上述程序的输出结果如下:

The common elements present within the array are:  [3, 4]

在两个不同数组中查找公共元素

NumPy intersect1d()方法可用于查找两个一维数组的公共元素。这类似于intersect_update() 方法,该方法处理多维数组。为了更好地理解这个概念,让我们看一个示例。

输入输出情况

考虑两个一维数组。

arr1 = [1, 2, 3, 4]
arr2 = [3, 4, 5, 6]
  • 我们可以清楚地看到元素“3”和“4”同时存在于数组arr1和arr2中。

  • 因此,我们可以得出结论,数组arr1和arr2的共同元素是3和4。

示例

在以下示例中,我们将使用numpy模块的intersect1d()方法找到多个一维数组中存在的公共元素。

import numpy as n
arr1 = [1, 2, 3, 4]
print("The first array is: ")
print(arr1)
arr2 = [3, 4, 5, 6]
print("The second array is: ")
print(arr2)
narr1 = n.array(arr1)
narr2 = n.array(arr2)
print("The common elements within the given arrays are: ")
print(n.intersect1d(narr1, narr2))

输出

上述程序的输出如下所示 –

The first array is:
[1, 2, 3, 4]
The second array is:
[3, 4, 5, 6]
The common elements within the given arrays are:
[3 4]

依据数组类型,可以遵循以下步骤。如果所考虑的数组是多维数组,则会遵循第一个程序中的步骤。

如果所考虑的数组是一维数组,则会遵循第二个程序中的步骤。这就是找到一个或多个数组的共同元素的方法。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程