一、集合(一山不容二虎的集合)
1.集合的定义
集合(set)是一个无序的不重复元素序列。1,2,3,4,1,2,3 = 1,2,3,4
2.集合的创建:
1). 使用大括号 { } 或者 set() 函数创建集合;
2). 注意:
创建一个空集合必须用 set() 而不是 { }
{ } 是用来创建一个空字典。
# 1. 集合的创建
s = {1, 2, 3, 1, 2, 3} # {1, 2, 3}
print(s, type(s))
## 注意点1: 集合的元素必须时不可变数据类型。
# s = {1, 2, 3, [1, 2, 3]}
# print(s, type(s))
## 注意点2:空集合不能使用{}, 而要使用set()
# s = {}
# print(s, type(s)) ##{} <class 'dict'>
s = set()
print(s, type(s))
3.集合的特性
集合本来就是无序的不重复的元素序列。所以连接操作、重复操作、索引、切片对他都无效。
# 不支持+,*, index, slice(因为集合无序不重复的)
# 支持in和not in
print(1 in {1, 2, 3, 4})
4.集合的操作
1. 增加
# 4-1). 增加
# add: 添加单个元素
# update: 添加多个元素
s = {1, 2, 3}
s.add(100)
print(s)
s = {1, 2, 3}
s.update({4, 5, 6})
print(s)
2. 删除
# remove: 如果元素存在,删除,否则报错
# discard: 如果元素存在,删除,否则do nothing
# pop: 随机删除一个元素
# 删除元素,集合为空则报错
s = {1, 2, 3}
s.remove(3)
print(s)
s = {1, 2, 3}
s.discard(100)
print(s)
s = {1, 66, 2,99, 78, 3}
s.pop()
print(s)
3.查看
# 3-3). 查看
# 差集: s1 - s2
# 交集: s1 & s2
# 对称差分: s1 ^ s2
# 并集: s1 | s2
s1 = {1, 2, 3}
s2 = {1,