【发布时间】:2016-03-10 08:51:48
【问题描述】:
我希望能够找到 list1 中的所有元素是否都存在于 list2 中,两个列表都包含字符。相同元素在每个列表中出现的次数很重要。
我尝试使用子集,但没有记录项目在列表中出现的次数
例如
list1 = [a, b, c]
list2 = [a, b, c, b]
它会发现 list2 是 list1 的一个子集,而我只希望我的函数在以下情况下执行:
list1 = [a, b, c, b, i]
list2 = [a, c, b, b]
因为这意味着 list2 中的所有项都出现在 list1 中。
如果有人感兴趣,使用计数器对于大字符串来说效率很低,所以我最终将 list1 的所有元素添加到字典中,值是每个元素的出现次数并减去 list2 的所有元素。如果任何值最终为负数,则并非 list2 中的所有项目都出现在 list1 中
【问题讨论】:
-
获取两个列表中的计数,然后检查
list2中所有项目的计数是否与list1中的完全相同:docs.python.org/3/library/collections.html#collections.Counter -
这个很不清楚,请给个更好的输入/输出例子
标签: python list python-3.x subset