首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Python:看看一个集合是否完全包含另一个集合?

Python:看看一个集合是否完全包含另一个集合?
EN

Stack Overflow用户
提问于 2010-05-04 21:55:39
回答 6查看 53.5K关注 0票数 92

有没有一种快速的方法来检查一个集合是否完全包含另一个集合?

类似于:

代码语言:javascript
复制
>>>[1, 2, 3].containsAll([2, 1])
True

>>>[1, 2, 3].containsAll([3, 5, 9])
False
EN

回答 6

Stack Overflow用户

发布于 2010-05-04 21:57:41

这些都是列表,但如果您真正想要的是集合,则可以使用issubset方法。

代码语言:javascript
复制
>>> s = set([1,2,3])
>>> t = set([1,2])
>>> t.issubset(s)
True
>>> s.issuperset(t)
True

对于一个列表,除了检查每个元素,你不能做得更好。

票数 141
EN

Stack Overflow用户

发布于 2010-05-04 22:06:35

为了完整性:这等同于issubset (尽管可以说没有那么明确/可读):

代码语言:javascript
复制
>>> set([1,2,3]) >= set([2,1])
True
>>> set([1,2,3]) >= set([3,5,9])
False
票数 38
EN

Stack Overflow用户

发布于 2016-04-13 20:42:13

有一个选项保持不变--减法:

代码语言:javascript
复制
>>> {1, 2} - {1, 2, 3}
set([])
>>> {1, 2, 3} - {1, 2}
set([3])

基本上是检查第一个列表中的哪些元素不在第二个列表中。

我发现它非常方便,因为您可以显示缺少哪些值:

代码语言:javascript
复制
>>> def check_contains(a, b):
...     diff = a - b
...     if not diff:
...         # All elements from a are present in b
...         return True
...     print('Some elements are missing: {}'.format(diff))
...     return False
...
>>> check_contains({1, 2}, {1, 2, 3})
True
>>> check_contains({1, 2, 3}, {1, 2})
Some elements are missing: set([3])
False
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2765892

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档