gpt4 book ai didi

math - 如何返回两个列表的交集,包括 Mathematica 中的重复项?

转载 作者:行者123 更新时间:2023-12-04 20:00:05 26 4
gpt4 key购买 nike

如何在 Mathematica 中找到包含重复项的两个列表的交集?

所以,如果我有这个:

list1 = {1, 1, 3, 4, 5, 6, 6, 6, 7, 7, 10, 11, 11};
list2 = {1, 1, 4, 5, 5, 6, 6, 7, 7, 8, 11, 11, 13, 14};

我希望它返回这个:

IntersectionIncludingDuplicates[list1, list2] = {1, 1, 4, 5, 6, 6, 7, 7, 11, 11}

感谢所有帮助!

最佳答案

这是一种方法:

Catenate@KeyValueMap[ConstantArray]@
MapThread[Min, KeyIntersection[Counts /@ {list1, list2}]]

分解:

  • 计算每个元素在每个列表中出现的次数(Counts)
  • 只保留同时出现在(KeyIntersection)中的那些元素
  • 取较少的出现次数(MapThreadMin)并复制给定元素多次(ConstantArray)

关于math - 如何返回两个列表的交集,包括 Mathematica 中的重复项?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46144500/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com