在Python中按字典交集查找三个排序数组中的公共元素
在使用python处理数据时,我们可能会遇到需要查找多个数组中共有的元素的情况。可以通过如下所示将数组转换为字典来实现。
在下面的示例中,我们采用数组并从collections模块应用Counter容器。它将保存容器中每个元素的计数。然后,我们通过应用dict()
并使用&运算符将它们转换为字典,以仅识别数组中的公共元素。最后,我们遍历新创建的字典的各项,并附加字典中的值以获得公共值的最终结果。
示例
from collections import Counter arrayA = ['Sun', 12, 14, 11, 34] arrayB = [6, 12, 'Sun', 11] arrayC = [19, 6, 20, 'Sun', 12, 67, 11] arrayA = Counter(arrayA) arrayB = Counter(arrayB) arrayC = Counter(arrayC) # Intersection commonDict = dict(arrayA.items() & arrayB.items() & arrayC.items()) res = [] # result for (key, val) in commonDict.items(): for i in range(0, val): res.append(key) print("The common values among the arrays are:\n ",res)
输出结果
运行上面的代码给我们以下结果-
The common values among the arrays are: ['Sun', 11, 12]