当前位置: 首页 > 面试题库 >

包含重复项的两个列表的交集?

郏稳
2023-03-14
问题内容

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

[1,1,2,3,4]

请注意,这不是一个相同的问题:
两个列表的Python交集保持重复
因为即使列表a中有三个1,列表b中也只有两个,所以结果应该只有两个。


问题答案:

您可以使用collections.Counter此方法,当您使用交叉路口时,它将为每个元素提供在任一列表中找到的最低计数。

from collections import Counter

c = list((Counter(a) & Counter(b)).elements())

输出

[1, 1, 2, 3, 4]


 类似资料:
  • 本文向大家介绍Python中包含重复项的两个列表的区别,包括了Python中包含重复项的两个列表的区别的使用技巧和注意事项,需要的朋友参考一下 有时我们需要找出两个列表之间的差异。这还将意味着数学减法,其中如果第二列表中存在元素,则将其从第一列表中删除。重复项将保留。以下是我们可以实现此目标的方法。 我们可以使用collections模块中的Counter方法,该方法将跟踪元素的计数。直接的数学减

  • 问题内容: 我有两个平面列表,其中一个包含重复值。例如, 我需要在array1中也找到array2中的值,并保留array1中的重复项。预期的结果将是 我想避免循环,因为实际数组将包含数百万个值。我尝试了各种布景和相交组合,但无法保留重复项。 任何帮助将不胜感激! 问题答案: 您是什么意思不想使用循环?您将不得不以一种或另一种方式对其进行迭代。只需单独放入每个项目,然后检查是否随身携带: 此外,根

  • 问题内容: 这个问题已经在这里有了答案 : 从列表列表中删除重复项 (12个答案) 4年前关闭。 这是我的两个清单。 我的输出应为以下内容; 如何获得此输出? 先感谢您 问题答案: 您将必须将列表转换为元组列表,然后使用交集。请注意,下面的解决方案可能具有不同顺序的元素,并且由于我使用的是set,因此显然不会存在重复项。 您也可以将交叉点保存在变量中并获取最终列表,如果需要排序,则需要重复: 和交

  • 我有一个<代码>列表 Java8似乎提供了一种通过流来实现的方法。更基本的方法呢? 谢谢

  • 问题内容: 我有两个列表需要合并,第二个列表忽略了第一个列表的重复项。..有点难以解释,所以让我展示一个代码看起来像什么,以及我想要什么的示例。 您会注意到结果具有第一个列表, 包括 其两个“ 2”值,但是second_list也具有附加的2和5值这一事实并未添加到第一个列表中。 通常,对于这样的事情,我会使用集合,但是first_list上的集合会清除它已经具有的重复值。所以我只是想知道什么是实

  • 我有一个类型的变量,其中item如下所示: 我想将其重新排序为,其中键是customerId,然后值是具有该客户ID的所有项的列表。