创建¶

In [1]:
set1 = {1, 'a', '$'}
print(type(set1), set1)

set2 = set(['b', '_', (1,2)])
print(type(set2), set2)

set3 = set('hello')
print(type(set3), set3)
<class 'set'> {1, '$', 'a'}
<class 'set'> {(1, 2), '_', 'b'}
<class 'set'> {'o', 'l', 'e', 'h'}

接口¶

add(*)¶

set1.add()向 set1 集合中添加数字、字符串、元组或者布尔类型

In [2]:
set1 = {1,2,3}
set1.add((1,2))
set1
Out[2]:
{(1, 2), 1, 2, 3}

clear()¶

set1.clear() 清空 set1 集合中所有元素

In [3]:
set1 = {1,2,3}
set1.clear()
set1## set()才表示空集合,{}表示的是空字典
Out[3]:
set()

copy()¶

set2 = set1.copy() 拷贝 set1 集合给 set2

In [4]:
set1 = {1,2,3}
set2 = set1.copy()
set1.add(4)
print(set1, set2)
{1, 2, 3, 4} {1, 2, 3}

difference()¶

set3 = set1.difference(set2) 将 set1 中有而 set2 没有的元素给 set3

In [5]:
set1 = {1,2,3}
set2 = {3,4}
set3 = set1.difference(set2)
set3
Out[5]:
{1, 2}
In [6]:
print(set1 - set2)
print(set2 - set1)
{1, 2}
{4}

difference_update()¶

set1.difference_update(set2) 从 set1 中删除与 set2 相同的元素

In [7]:
set1 = {1,2,3}
set2 = {3,4}
set1.difference_update(set2)
set1
Out[7]:
{1, 2}

discard()¶

set1.discard(elem) 删除 set1 中的 elem 元素

In [8]:
set1 = {1,2,3}
set1.discard(2)
set1
Out[8]:
{1, 3}
In [9]:
set1.discard(4)## 如果该集合内没有该元素也不会报错

intersection()¶

set3 = set1.intersection(set2) 取 set1 和 set2 的交集给 set3

In [10]:
set1 = {1,2,3}
set2 = {3,4}
set3 = set1.intersection(set2)
set3
Out[10]:
{3}
In [11]:
print(set1 & set2)
{3}

intersection_update()¶

set1.intersection_update(set2) 取 set1和 set2 的交集,并更新给 set1

In [12]:
set1 = {1,2,3}
set2 = {3,4}
set1.intersection_update(set2)
set1
Out[12]:
{3}

isdisjoint()¶

set1.isdisjoint(set2) 判断 set1 和 set2 是否没有交集,有交集返回 False;没有交集返回 True

In [13]:
set1 = {1,2,3}
set2 = {3,4}
set1.isdisjoint(set2)
Out[13]:
False

issubset()¶

set1.issubset(set2) 判断 set1 是否是 set2 的子集

In [14]:
set1 = {1,2,3}
set2 = {1,2}
set1.issubset(set2)
Out[14]:
False

issuperset()¶

set1.issuperset(set2) 判断 set2 是否是 set1 的子集

In [15]:
set1 = {1,2,3}
set2 = {1,2}
set1.issuperset(set2)
Out[15]:
True

pop()¶

a = set1.pop() 取 set1 中一个元素,并赋值给 a

In [16]:
set1 = {1,2,3}
a = set1.pop()
set1
Out[16]:
{2, 3}

remove()¶

set1.remove(elem)移除 set1 中的 elem 元素

In [17]:
set1 = {1,2,3}
set1.remove(2)
set1
Out[17]:
{1, 3}
In [18]:
set1.remove(4)##如果该集合内没有该元素就报错(KeyError)
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
Cell In[18], line 1
----> 1 set1.remove(4)##如果该集合内没有该元素就报错(KeyError)

KeyError: 4

symmetric_difference()¶

set3 = set1.symmetric_difference(set2)取 set1 和 set2 中互不相同的元素,给 set3

In [ ]:
set1 = {1,2,3}
set2 = {3,4}
set3 = set1.symmetric_difference(set2)
set3

symmetric_difference_update()¶

set1.symmetric_difference_update(set2) 取 set1 和 set2 中互不相同的元素,并更新给 set1

In [19]:
set1 = {1,2,3}
set2 = {3,4}
set1.symmetric_difference_update(set2)
set1
Out[19]:
{1, 2, 4}
In [20]:
print(set1 ^ set2)
{1, 2, 3}

union()¶

set3 = set1.union(set2) 取 set1 和 set2 的并集,赋给 set3

In [21]:
set1 = {1,2,3}
set2 = {3,4}
set3=set1.union(set2)
set3
Out[21]:
{1, 2, 3, 4}
In [22]:
print(set1 | set2)
{1, 2, 3, 4}

update()¶

set1.update(elem)添加列表或集合中的元素到 set1

In [23]:
set1 = {1,2,3}
set1.update([3,4])
set1
Out[23]:
{1, 2, 3, 4}

frozenset¶

不可变集合,没有add或pop接口

In [24]:
const = frozenset("hello")
const
Out[24]:
frozenset({'e', 'h', 'l', 'o'})