一、创建集合
1、使用{}创建集合
set1 = {'a', 'b', 'c', 3, 3}
print(set1)
#输出
{'c', 3, 'b', 'a'}
从此例可以得出两点:
第一:集合打印出的元素顺序和定义时的顺序不一定是一致的!
第二:集合会将里面重复的元素值自动去除!
set1 = {}
print(type(set1))
set2 = {1}
print(type(set2))
#输出结果
<class 'dict'>
<class 'set'>
根据上例可以看到,使用{}创建集合时,如果{}里面没有元素,则它不是一个集合,而是一个字典!
2、使用set()创建集合
格式:set([iterable])
iterable :可迭代对象对象;
set1 = set()
print(type(set1))
set2 = set([1, 2])
print(type(set2))
print(set2)
#输出结果
<class 'set'>
<class 'set'>
{1, 2}
二、访问集合元素
由于set 集合中的元素是无序的,因此无法使用索引(下标)访问元素。通常使用for循环遍历访问集合元素。
set1 = {1, 5, 'k'}
for i in set1:
print(i)
#结果
1
k
5
三、集合的增、删、查、改操作
1、添加元素
1)、使用add()添加
格式:set.add(element)
set1 = {1, 5, 'k'}
set1.add('element')
for i in set1:
print(i)
#输出
element
1
5
k
如果要添加的元素已存在,则add() 方法就不会添加元素。
2)、使用update()添加元素
格式:set.update(iterable)
iterable:可迭代对象
set1 = {1, 5, 'k'}
set1.update({'element'})
set1.update([22, 33])
set1.update([44, 55])
for i in set1:
print(i)
#输出
k
1
33
5
44
55
element
22
2、删除元素
1)、使用remove()删除元素
格式:set.remove(item)
remove() 方法在移除一个不存在的元素时会发生错误。
set1 = {1, 5, 'k'}
set1.remove(1) #删除元素1
for i in set1:
print(i)
#输出
k
5
2)、使用discard()删除元素
格式:set.discard(value)
discard() 方法在移除一个不存在的元素时不会发生错误。
set1 = {1, 5, 'k'}
set1.discard(5) #删除元素5
for i in set1:
print(i)
#输出
1
k
3)、使用pop()删除元素
格式:set.pop()
pop()方法会随机删除元素。
set1 = {1, 5, 'k', 6, 7}
set1.pop()
set1.pop()
for i in set1:
print(i)
#输出
6
7
k
4)、使用clear()清空集合
格式:set.clear()
set1 = {1, 5, 'k', 6, 7}
set1.clear() #清空集合
5)、使用del语句删除集合
set1 = {1, 5, 'k', 6, 7}
del set1 #彻底删除集合
for i in set1:
print(i)
#输出
NameError: name 'set1' is not defined. Did you mean: 'set'?
3、查找元素
可以使用in和not in判断某个元素是否在集合中。
set1 = {1, 5, 'k', 6, 7}
if 'k' in set1:
print('ok')
if 'h' not in set1:
print('No')
#输出
ok
No
4、修改元素
set不支持修改元素。若想要修改元素,可以先将某个元素删除,然后通过add()或者update()重新添加这个元素。
set1 = {1, 5, 'k', 6, 7}
set1.remove('k') #将元素k修改为h,先删除再添加
set1.add('h')
print(set1)
#输出
{1, 5, 6, 7, 'h'}
四、集合的运算
1、交集
取两集合公共的元素。
1)、使用“&”运算符
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1 & set2) #集合set1和set2做交集运算
#输出
{1, 3}
2、使用intersection()方法
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1.intersection(set2)) #集合set1和set2做交集运算
#输出
{1, 3}
2、并集
取两集合全部的元素。
1)、使用“|”运算符
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1 | set2) #集合set1和set2做并集运算
#输出
{1, 2, 3, 5}
2)、使用union()方法
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1.union(set2)) #集合set1和set2做并集运算
#输出
{1, 2, 3, 5}
3、差集
取一个集合(被减数集合)中另一个集合没有的元素。
1)、使用“-”运算符
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1 - set2)
print(set2 - set1)
#输出
{2}
{5}
2)、使用difference()方法
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1.difference(set2))
print(set2.difference(set1))
#输出
{2}
{5}
4、补集
取集合 A 和 B 中不属于 A&B 的元素。
使用“-”运算符
set1 = {1, 2, 3}
set2 = {1, 3, 5}
print(set1^set2)
#输出
{2, 5}