本文介绍了一个列表包含另一个重复的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我需要检查一个列表是否包含了python中另一个列表的所有元素。不完全是集合运算,因为在集合中考虑了不同的值。我该怎么做?
示例: A是较大的列表,b是较小的集合
a = [1, 1, 2, 4], b = [1, 2, 3] -> False
a = [1, 1, 2, 3], b = [1, 2, 3] -> True
a = [1, 2, 4], b = [1, 2, 1] -> False // Because b has two 1s but a has only one.
我想请您仔细看看第三个案例。
[注意:]我非常清楚如何通过散列映射来实现。但我想要一件不那么笨重的。
推荐答案
Counter
def isin(a, b): return not (Counter(b) - Counter(a))
演示:
>>> isin([1, 1, 2, 4], [1, 2, 3])
False
>>> isin([1, 1, 2, 3], [1, 2, 3])
True
>>> isin([1, 1, 2, 4], [1, 2, 1])
True
>>> isin([1, 2, 4], [1, 2, 1])
False
这篇关于一个列表包含另一个重复的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!
本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!