python的集合和数学的集合相似,不能有重复的数据,如果有,会自动删除重复数据,只留下一个,同时集合的数据都没有顺序,故也没有下标。
创建集合创建集合使⽤用{} 或set() , 但是如果要创建空集合只能使⽤用set() ,因为{} ⽤用来创建空字典。
创建含数据的集合
s1 = {10, 20, 30, 40, 50}
print(s1)
s2 = {10, 30, 20, 10, 30, 40, 30, 50}
print(s2)
s3 = set('abcdefg')
print(s3)
创建空集合
s4 = set()
print(type(s4)) # set
s5 = {}
print(type(s5)) # dict
集合的常用操作
- 增加数据
add()
只能用来追加单一数据,不能追加序列。
s1 = {10, 20}
s1.add(100)
s1.add(10)
print(s1) # {100, 10, 20}
看得出来,追加的100,不一定在末位,可能出现在任何一个位置,可见集合确实没有顺序,且如果追加了集合已有数据,如上述的10,集合会自动去重的操作。
函数update()增加的数据类型是序列,不支持单一数据的追加,会报错。
s1 = {10, 20}
# s1.update(100) # 报错
s1.update([100, 200])
s1.update('abc')
print(s1)
2.删除数据
remove(),删除集合中的指定数据,如果数据不存在则报错。
s1 = {10, 20}
s1.remove(10)
print(s1)
s1.remove(10) # 报错
print(s1)
discard(),删除集合中的指定数据,如果数据不存在也不会报错。
s1 = {10, 20}
s1.discard(10)
print(s1)
s1.discard(10)
print(s1)
pop(),随机删除集合中的某个数据,并返回这个数据。
s1 = {10, 20, 30, 40, 50}
del_num = s1.pop()
print(del_num)
print(s1)
3.查找数据
in:判断数据在集合序列列
not in:判断数据不在集合序列列
s1 = {10, 20, 30, 40, 50}
print(10 in s1)
print(10 not in s1)



