一个列表包含另一个重复的列表 [英] A list contains another list with repetition

查看:18
本文介绍了一个列表包含另一个重复的列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要检查一个列表是否包含了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

这篇关于一个列表包含另一个重复的列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆