集合是可变的容器
集合内的数据对象都是唯一的(不能重复)
集合是无序的存储结构
集合内的元素必须是不可变对象
集合是可迭代对象
集合是相当于只有键没有值的字典
创建集合
创建空集合:
set()
创建非空集合的字面值:
s = {1, 2, 3}
集合的构造函数:
set() 创建空集合
set(iterable) 用可迭代对象创建一个新的集合
示例:
s = set()
s = {2, 3, 5, 7}
s = set("ABC") #s = {'A', 'B', 'C'}
s = set("ABCCBA") #s = {'A', 'B', 'C'}
s = set({1:'1', 2:'2', 5:'5'}) #s = {1, 2, 5}
s = set(('ABC', '123', True))
s = {True, None, "ABC", (1, 2, 3)}
集合的运算:
交集 & 并集 | 补集 - 对称补集 ^ 子集 < 超集 >
& 用于生成两个集合的交集:
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1 & s2 #{2, 3}
| 用于生成两个集合的并集:
s1 | s2 #{1, 2, 3, 4}
- 用于生成两个集合的补集:
s1 - s2 #{1} 属于s1但不属于s2
s2 - s1 #{4} 属于s2但不属于s1
^ 用与生成两个集合的对称补集:
s1 ^ s2 #{1, 4}
> 判断一个集合是另一个集合的超集:
s1 = {1}
s2 = {1, 2}
s2 > s1 #True
< 判断一个集合是另一个集合的子集:
s1 < s2 #True
==/!= 判断两个集合是否相同:
s1 == s2 #False
s1 != s2 #True
in/not in 运算:
同列表和字典规则相同
## 用于集合的函数:
len(x) 返回集合长度
max(x) 返回集合的最大值元素
min(x) 返回集合的最小值元素
sum(x) 返回集合中所有元素的和
any(x) 真值测试
all(x) 真值测试
集合是可迭代对象,可以用于for语句中
集合的方法:
>>>help(set)
集合推导式:
是用可迭代对象创建集合的表达式
语法:
{表达式 for 变量 in 可迭代对象 [if 真值表达式]}
示例:
numbers = [1, 3, 5, 7, 9, 3, 4, 5, 6, 7]
s = {x ** 2 for x in numbers if x % 2 == 1}
print(s)
固定集合frozenset:
固定集合是不可变的,无序的,含有唯一元素的集合
作用:
固定集合可以作为字典的键,也可以作为集合的值
固定集合的构造函数:
frozenset() 创建一个空的固定集合
frozenset(iterable) 用可迭代对象创建一个新的固定集合
示例:
fz = frozenset()
fz = frozenset("ABCAB")
fz = frozenset([1, 2, 3, 4, 5])
固定集合的运算:
交集 & 并集 | 补集 - 对称补集 ^
in/not in
< <= > >= == !=
固定集合的方法:
相当于集合的全部方法去掉修改集合的方法