集合
1.什么是集合(set)
python内置的容器型数据类型,可变(支持增删改),无序(不支持下标操作)
语法:{元素1,元素2,元素3,...}
元素要求不可变且唯一,若有多个相同元素实际只保留一个。利用此特点,可以去重列表中相同元素:set(list)--list(set)
2.查
集合无法单独取出某一个元素;只能遍历
set1 = {1,2,3,4}
for item in set1:
print(item)
3.增
集合.add(元素) --在集合中添加指定元素
集合.update(序列) --将序列中的元素(不可变)添加到集合中,若序列为字典,则添加字典的key作为集合元素
set1 = {1,2,3,4}
set1.update('abc')
print(set1) #{1,2,3,4,'a','b','c'}
4.删
集合.remove(元素) --删除集合中指定元素,元素不存在会报错
集合.clear() --清空集合
空集合的表示:
set1 = set() 或set1 = set([])
不能写成{},因为这个是空字典
5.改
集合不支持改操作
6.数学集合运算
包含关系(>=,<=),并集,交集,差集,补集
a.包含关系
集合1>= 集合2 :判断集合1是否包含集合2(不是比较大小),结果True or False
b.并集(|)
集合1 | 集合2 :将集合1和集合2中的元素合并在一起产生新的集合(会去重)
c.交集(&)
集合1&集合2:将集合1和集合2中公共的元素合并在一起产生新的集合
d.差集(-)
集合1 - 集合2:集合1中除了和集合2公共的元素以外的元素
e.补集(^)
集合1^集合2:并集-交集
7.相关操作
in / not in:
元素 in ste:判断元素是否在集合中,结果为布尔值
set(序列):将序列转换为集合
set('abc') #{'a','b','c'}
len(集合):计算集合中元素个数
总结:集合的应用主要表现在去重和数据集合运算
容器类型数据总结
容器类型 | 字符串(str) | 列表(list) | 元祖(tuple) | 字典(dict) | 集合(set) |
---|---|---|---|---|---|
特点 | 不可变有序 | 可变有序 | 不可变有序 | 可变无序 | 可变无序 |
值 | 用单引号或双引号或三个单引号或三个双引号括起来的数据(注释也可以打印) | 中括号括起来,元素可以是任何类型,元素类型可以不一致且可以重复 | 小括号括起来,元素可以是任何类型,元素类型可以不一致且可以重复 | 大括号括起来{键值对},key:不可变且唯一,value:可以是任何类型,类型可以不一致且可以重复 | 大括号括起来{元素},元素不可变且唯一 |
增 | \ | 列表.append(),列表.insert(index,value) | \ | 字典[key]=value,字典.setdefault(key,value) | 集合.add(value) |
删 | \ | del list1[index],list1.remove(value),list1.pop(index) | \ | del dict1[key],dict1.pop(key) | set1.remove(value) |
改 | \ | list1[index]=value | \ | dict1[key]=value | \ |
查 | 查单个(下标),切片,遍历 | 查单个(下标),切片,遍历 | 查单个(下标),切片,遍历 | 查单个(key),遍历(取到的是key值),由于无序每次for遍历取得的数据顺序可能不一样,如果写定了的话,按顺序遍历 | 只能遍历(for),由于无序每次for遍历取得的数据顺序可能不一样,如果写定了的话,按顺序遍历 |
使用 | 单独文字数据使用字符串 | 保存多个具有相同意义的数据 | 多个数据的值或顺序不能变的时候(如星期) | 同时保存的多个数据需要区分时 | 去重和数学集合运算 |