Python 程序从两个数组中查找不同的元素

pythonserver side programmingprogramming

在编程中,数组是一种数据结构,用于存储同类数据元素的集合。数组中的每个元素都由键或索引值标识。

python 中的数组

Python 没有特定的数据类型来表示数组。相反,我们可以使用 List 作为数组。

[1, 4, 6, 5, 3]

从两个数组中查找不同的元素意味着识别两个给定数组之间的唯一元素。

输入输出场景

假设我们有两个数组 A 和 B,它们的值为整数。并且结果数组将具有来自两个数组的不同元素。

输入数组:
A = [1, 2, 3, 4, 5]
B = [5, 2, 6, 3, 9]
输出数组:
[1, 6, 4, 9]

元素 1、6、4、9 是两个数组之间的唯一值。

输入数组:
A = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]
输出数组:
[]

在给定的 2 个数组中未找到不同元素。

使用 for循环

我们将对元素数量相等的数组使用 for 循环。

示例

在下面的示例中,我们将使用列表推导方法定义 for 循环。

arr1 = [1, 2, 3, 4, 5]
arr2 = [5, 2, 6, 3, 9]

result = []
for i in range(len(arr1)):
   if arr1[i] not in arr2:
      result.append(arr1[i])
   if  arr2[i] not in arr1:
      result.append(arr2[i])
        
print("不同的元素是:", result)

输出

不同的元素是:[1, 6, 4, 9]

在这里,我们使用 for 循环和 if 条件找到了不同的元素。首先,迭代循环并验证元素 arr1[i] 是否不存在于数组 arr2 中,然后如果元素是不同的元素,我们将该元素附加到结果变量中。以同样的方式,我们将第二个数组元素验证到第一个数组。并将不同的元素存储在结果数组中。

示例

让我们取另一组数组并找到不同的元素。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]

result = []
for i in range(len(a)):
   if a[i] not in b:
      result.append(a[i])
   if  b[i] not in a:
      result.append(b[i])
        
print("不同的元素是:", result)

输出

不同的元素是:[]

在给定的数组集合中未找到不同的元素。

使用集合

在两个数组中查找不同的元素与查找两个集合之间的对称差异非常相似。通过使用 Python 集合数据结构及其属性,我们可以轻松地从两个数组中识别不同的元素。

示例

首先,我们将列表转换为集合,然后在两个集合之间应用对称差异属性 ^ 来获取不同的元素。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7, 8]
result = list((set(a) ^ set(b)))
if result:
    print("不同的元素是:", result)
else:
    print("两个数组中不存在不同的元素")

输出

不同的元素是:[1, 2, 6, 7, 8]

我们还可以使用 set.symmetric_difference() 方法从两个数组中找出不同的元素。 symmetric_difference() 方法返回给定集合中存在的所有唯一项。

对称

set_A.symmetric_difference(set_B)

示例

让我们看一个从两个数组中获取不同元素的示例。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 6, 7, 8]

result = list(set(a).symmetric_difference(set(b)))

if result:
    print("不同元素为:", result)
else:
    print("两个数组中不存在不同元素")

输出

不同元素为:[1, 2, 6, 7, 8]

这里我们使用了 symmetric_difference() 方法将 A 和 B 的对称差异获取到结果变量中。然后,使用 list() 函数再次将唯一元素集转换为列表。

示例

如果未找到不同元素,则 symmetric_difference() 方法将返回空集。

a = [1, 2, 3, 4, 5]
b = [3, 4, 5, 1, 2]

result = list(set(a).symmetric_difference(set(b)))

if result:
    print("不同元素为:", result)
else:
    print("两个数组中不存在不同元素")

输出

两个数组中不存在不同元素

在上面的例子中,所有元素都是公共元素。因此 symmetric_difference() 方法返回空集。


相关文章