集合(set)
一、定义
1.集合是一个无序的,不重复的数据组合
2.集合是一个只含有key的字典
集合的元素必须是可hash的(不可变数据类型)
python中所有字符串、数字、元组、布尔值、None都是可hash对象
而列表是可变数据类型,不可以为列表
集合的作用
1.去重:把一个列表变成集合,就自动去重了
2.关系测试:测试两组数据之前的交集、差集、并集等关系
二、集合的操作
2.1 添加
add 添加一项
update 添加多项 传入一个可迭代对象
>>> s1
{1, 2, 3}
>>> s1.add(4)
>>> s1
{1, 2, 3, 4}
>>> s1.update(['a','b'])
>>> s1
{1, 2, 3, 4, 'a', 'b'}
2.2 删除
remove(item) => 移除一项(item不存在 会出错KeyError)
discard(item) => 移除一项(item不存在 则什么也不做)
>>> s1
{1, 2, 3, 4, 'a', 'b'}
>>> s1.remove("a")
>>> s1.remove("x")
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
KeyError: 'x'
>>> s1
{1, 2, 3, 4, 'b'}
>>> s1.discard(1)
>>> s1.discard(5)
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
{1, 4}
>>> max([1,3,2,5,2,1])
5
>>> min([1,3,2,5,2,1])
1
>>> sum([1,3,2,5,2,1])
14