为什么学习集合
在我们学习了列表,元组,字符串三个数据容器后,基本满足了大多数的使用场景但是这三个数据容器有些许局限性。
列表可修改支持重复元素且有序
元组,字符串不可修改,支持重复元素且有序
局限在于它们都支持重复元素,但当场景需要对内容做去重处理时列表,元组,字符串就不方便了。而集合最主要的特点就是不支持元素的重复并且内容无序
集合的基本语法
#定义集合字面量
{元素,元素,元素,......,元素}
#定义集合变量
变量名称={元素,元素,......,元素}
#定义空集合
变量名称=set()
集合的常用操作
首先,因为集合是无序的,所以集合不支持:下标索引访问
但是集合和列表一样,是允许修改的
添加新元素
语法:集合.add(元素)。将指定的元素添加到集合内
结果:集合本身被修改,添加了新元素。但若是添加的元素与集合中的元素一样则不会被加进去
my_set={"Hello","world"}
my_set.add("lucky")
print(my_set)
移除元素
语法:集合.remove(元素),将指定元素从集合内移除
结果:集合本身被修改,移除了元素
my_set={"Hello","world","lucky"}
my_set.remove("lucky")
print(my_set)
随即取出元素
语法:集合.pop(),从集合中随机取出一个元素
结果:会得到一个元素的结果。同时集合本身被修改,元素被移除
my_set={"Hello","world","lucky"}
element=my_set.pop()
print(my_set)
print(element)
清空集合
语法:集合.clear(),清空集合
结果:集合本身被清空
my_set={"Hello","world","lucky"}
element=my_set.clear()
print(my_set)
取出2个集合的差集
语法:集合1.different(集合2),取出集合1和集合2的差集(集合1有而集合2没有的)
结果:得到一个新集合,集合1和集合2不变
set1={1,2,3}
set2={1,6,8}
set3=set1.different(set2)
print(set3)
消除2个集合的差集
语法:集合1.difference_update(集合2)
结果:集合1被修改,集合2不变
set1={1,2,3}
set2={1,6,8}
set1.difference_update(set2)
print(set1)
2个集合合并
语法:集合1.union(集合2),将集合1和集合2组合成新集合
结果:得到新集合,集合1和集合2不变
set1={1,2,3}
set2={1,6,8}
set3=set1.union(set2)
print(set3)
统计集合元素数量len()
set1={1,2,3,4,5}
num=len(set1)
print(num)
集合的遍历
集合不支持下标索引,所以不支持while循环,但可以for循环
set1={1,2,3,4,5}
for index in set1:
print(index)