1.什么是集合(set)
集合是容器型数据类型,将{}作为容器的标志,里面多个元素用逗号隔开。集合是 可变的,支持增删改;集合是无序的 。集合中的元素是不可变并且唯一的
{元素1,元素2,元素3,...}
空集合
empty = set() # {}是空字典
非空集合
set1 = {1,23,34}
set2 = {(1,2),3,4}
# set3 = {[1,2],3,4} # 报错,列表不能作为集合的元素
set4 = {1,2,3,1,4,1}
print(set4) # {1, 2, 3, 4},直接去重
print({1,2,3} == {2,3,1}) # True(说明集合无序)
2.集合中元素的增删改查
1)查询
集合没有办法直接获取单个元素,只能遍历
for 变量 in 集合:
循环体
变量取到的就是集合中的每个元素
nums = {23,34,90,89}
for x in nums:
print(x)
2)增加
a. 集合.add(元素) - 在集合中添加指定元素
b. 集合.update(序列) - 将序列中的元素全部添加到集合中
nums.add(100)
print(nums) # {34, 100, 23, 89, 90},不关注顺序
nums = set()
nums.update({'a':10, 'b':20})
print(nums) # {'b', 'a'}
3)删除
集合.remove(元素) - 删除集合中指定的元素,元素不存在会报错
集合.discard(元素) - 删除集合中指定的元素,元素不存在不会报错
4)修改 - 集合无法修改元素
3.数学集合运算
python中的集合支持数学集合运算:交集(&)、并集(|)、差集(-)、对称差集(^)、真子集(>或<)
set1 = {1,2,3,4,5}
set2 = {4,5,6,7,8,9}
1)交集(&)
print(set1 & set2) # {4, 5}
2)并集(|)
print(set1 | set2) # {1, 2, 3, 4, 5, 6, 7, 8, 9}
3)差集(-):要看谁减谁
print(set1 - set2) # {1, 2, 3}
4)对称差集(^)
去掉两个集合公共部分后剩下的部分
print(set1 ^ set2) # {1, 2, 3, 6, 7, 8, 9}
5)真子集
集合1 > 集合2 - 判断集合2是否是集合1的真子集
集合1 < 集合2 - 判断集合1是否是集合2的真子集
print({100,200,300,400} > {100,200}) # True
print({10,20} > {10,20}) # False