【发布时间】:2019-09-12 21:59:25
【问题描述】:
我有一个算法,其功能取决于两个列表之间匹配实例(甚至重复)的数量。例如:
a = ["test", "win", "win", "bike", "bike", "bike", "gem", "nine"]
b = ["test", "win", "let", "bike", "four"]
d = set(a).intersection(b)
会给我:
{"test", "win", "bike"}
我想要的输出是:
{"test", "win", "win", "bike", "bike", "bike"}
我想我可以只利用输出列表并计算每个相交单词在list a 等中存在的次数...但这是相当多的额外步骤,我希望有一个更简单的方法来实现这个输出。
我的问题是,根据提供的示例列表,我如何才能实现所需的第二个输出:
{"test", "win", "win", "bike", "bike", "bike"}
【问题讨论】:
-
你应该使用一个列表。使用集合的主要目的是保持每个元素的唯一记录。
-
如果列表 b 中有 2 辆自行车怎么办?结果如何?
标签: python python-3.x list set-intersection