使用 Methods 和 Builtins 設定操作
我們定義了兩組 a
和 b
>>> a = {1, 2, 2, 3, 4}
>>> b = {3, 3, 4, 4, 5}
注意:
{1}
會建立一個元素集,但{}
會建立一個空的dict
。建立空集的正確方法是set()
。
路口
a.intersection(b)
返回一個新的集合,其中包含 a
和 b
中的元素
>>> a.intersection(b)
{3, 4}
聯合
a.union(b)
返回一個新集合,其中包含 a
和 b
中的元素
>>> a.union(b)
{1, 2, 3, 4, 5}
區別
a.difference(b)
返回一個新集合,其中元素存在於 a
中但不在 b
中
>>> a.difference(b)
{1, 2}
>>> b.difference(a)
{5}
對稱差異
a.symmetric_difference(b)
返回一個新的集合,其元素存在於 a
或 b
中,但不存在於兩者中
>>> a.symmetric_difference(b)
{1, 2, 5}
>>> b.symmetric_difference(a)
{1, 2, 5}
注意 :a.symmetric_
difference(b) == b.symmetric_difference(a)
子集和超集
c.issubset(a)
測試 c
的每個元素是否在 a
。
a.issuperset(c)
測試 c
的每個元素是否都在 a
。
>>> c = {1, 2}
>>> c.issubset(a)
True
>>> a.issuperset(c)
True
後面的操作具有等效的運算子,如下所示:
方法 | 操作者 |
---|---|
a.intersection(b) |
a & b |
a.union(b) |
a |
a.difference(b) |
a - b |
a.symmetric_difference(b) |
a ^ b |
a.issubset(b) |
a <= b |
a.issuperset(b) |
a >= b |
不相交的集合
如果 a
中的元素也不在 d
中,則 a
和 d
是不相交的,反之亦然。
>>> d = {5, 6}
>>> a.isdisjoint(b) # {2, 3, 4} are in both sets
False
>>> a.isdisjoint(d)
True
# This is an equivalent check, but less efficient
>>> len(a & d) == 0
True
# This is even less efficient
>>> a & d == set()
True
測試會員資格
內建的 in
關鍵字搜尋出現
>>> 1 in a
True
>>> 6 in a
False
長度
內建的 len()
函式返回集合中的元素數
>>> len(a)
4
>>> len(b)
3