📌  相关文章
📜  Python|通过字典交集查找三个排序数组中的公共元素(1)

📅  最后修改于: 2023-12-03 14:46:32.313000             🧑  作者: Mango

Python | 通过字典交集查找三个排序数组中的公共元素

在Python中,使用字典的交集操作可以很方便地查找多个数组的公共元素。本篇文章将介绍如何使用Python字典交集操作查找三个排序数组中的公共元素。

步骤
  1. 创建三个已排序的数组a、b和c。
  2. 创建三个空字典d1、d2和d3。
  3. 使用for...in循环遍历数组a,并将a中的元素作为键,将值设为1,存入字典d1中。
  4. 使用for...in循环遍历数组b,并将b中的元素作为键,将值设为1,存入字典d2中。
  5. 使用for...in循环遍历数组c,并将c中的元素作为键,将值设为1,存入字典d3中。
  6. 使用Python字典的交集操作&,找出三个字典之间的公共键,即为公共元素。
  7. 将公共元素加入结果集合ans中。
  8. 最后将结果集合ans转化为列表,并返回。

下面是实现代码:

def findCommon(a, b, c):
    d1, d2, d3 = {}, {}, {}
    for i in a:
        d1[i] = 1
    for i in b:
        d2[i] = 1
    for i in c:
        d3[i] = 1
    ans = set(d1.keys()) & set(d2.keys()) & set(d3.keys())
    return list(ans)
示例

现在我们来测试一下这个函数:

a = [1, 5, 10, 20, 40, 80]
b = [6, 7, 20, 80, 100]
c = [3, 4, 15, 20, 30, 70, 80, 120]

print(findCommon(a, b, c))

输出结果为:

[80, 20]

注意,输出结果是恰好排序数组a、b和c中都有的元素,因此结果也是按顺序排列的。

总结

使用Python字典交集操作,可以很方便地查找多个数组中的公共元素,是一个非常实用的技巧。值得一提的是,在实现的过程中,可以不用考虑三个数组的长度、元素类型等具体细节,只需考虑数组中的元素是否出现在字典中即可。