找到部分子集python

时间:2015-11-17 22:16:59

标签: python set

我正在寻找一种方法来获取另一个set中显示的set个元素的数量。

考虑到这两组:

a = 'a b c d'
b = 'a b c e f'
a = set(a.split())
b = set(b.split())

这打印错误:

print a.issubset(b) # prints False

是否有一种pythonic方式来打印“3”,因为a中出现了b的三个元素?

2 个答案:

答案 0 :(得分:9)

IIUC,您可以使用set.intersection

>>> a.issubset(b)
False
>>> a.intersection(b)
{'a', 'c', 'b'}
>>> len(a.intersection(b))
3

可以缩写为&,因为ab都是集合:

>>> len(a & b)
3

答案 1 :(得分:1)

你可以&|在python集上执行简单的集合代数。

例如:

> a & b
set(['a', 'c', 'b'])
> a | b
set(['a', 'c', 'b', 'e', 'd', 'f'])