当前位置:   article > 正文

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

python三个集合中的共同元素

给定三个数组以非降序排序, 请打印这些数组中的所有公共元素。

例子:

  1. Input: ar1 = [1, 5, 10, 20, 40, 80]
  2. ar2 = [6, 7, 20, 80, 100]
  3. ar3 = [3, 4, 15, 20, 30, 70, 80, 120]
  4. Output: [80, 20]
  5. Input: ar1 = [1, 5, 5]
  6. ar2 = [3, 4, 5, 5, 10]
  7. ar3 = [5, 5, 10, 20]
  8. Output: [5, 5]

我们已经有解决此问题的方法, 请参阅在三个排序的数组中查找共同的元素链接。我们可以使用python快速解决此问题路口的字典。方法很简单,

  1. 首先使用以下命令将所有三个列表转换为以元素为键, 频率为值的字典Counter()方法。
  2. 现在对三个字典执行交集运算, 这将使我们的字典在三个数组列表中具有相同元素及其频率。

Python通过字典交集在三个排序的数组中查找公共元素代码实现:

  1. # Function to find common elements in three
  2. # sorted arrays
  3. from collections import Counter
  4. def commonElement(ar1, ar2, ar3):
  5. # first convert lists into dictionary
  6. ar1 = Counter(ar1)
  7. ar2 = Counter(ar2)
  8. ar3 = Counter(ar3)
  9. # perform intersection operation
  10. resultDict = dict (ar1.items() & ar2.items() & ar3.items())
  11. common = []
  12. # iterate through resultant dictionary
  13. # and collect common elements
  14. for (key, val) in resultDict.items():
  15. for i in range ( 0 , val):
  16. common.append(key)
  17. print (common)
  18. # Driver program
  19. if __name__ = = "__main__" :
  20. ar1 = [ 1 , 5 , 10 , 20 , 40 , 80 ]
  21. ar2 = [ 6 , 7 , 20 , 80 , 100 ]
  22. ar3 = [ 3 , 4 , 15 , 20 , 30 , 70 , 80 , 120 ]
  23. commonElement(ar1, ar2, ar3)

输出如下:

[80, 20]

首先, 你的面试准备可通过以下方式增强你的数据结构概念:Python DS课程。

更多数据结构和算法相关内容请参考:lsbin - IT开发技术https://www.lsbin.com/

参考Python数据结构和算法相关内容:

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/凡人多烦事01/article/detail/685275
推荐阅读
相关标签
  

闽ICP备14008679号