集合 set
定义
由一系列不重复的不可变类型变量组成的可变散列容器。
相当于只有键没有值的字典(键则是集合的数据)。
基础操作
创建空集合:
集合名 = set()
集合名 = set(可迭代对象)
创建具有默认值集合:
集合名 = {1, 2, 3}
集合名 = set(可迭代对象)
添加元素:集合名.add(元素)
update()方法用于修改当前集合,可以添加新的元素或集合到当前集合中,如果添加的元素在集合中已存在,则该元素只会出现一次,重复的会忽略。
set2={"a", 2, "b", 3, "d"} set1 = {"a", 2, "b", 3, "e"} set2.update(set1) print(set2)#{2, 3, 'd', 'b', 'a', 'e'}
删除元素:集合名.discard(元素)
集合名.remove(元素)
随机移除元素:集合名.pop()
移除集合中的所有元素:集合名.clear()#清除
拷贝一个集合:copy()
集合名.copy()
运算
1.交集&:返回共同元素。
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 & s2 # {2, 3}
2.并集 |:返回不重复元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 | s2 # {1, 2, 3, 4}
3.补集-:返回只属于其中之一的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s1 - s2 # {1} 属于s1但不属于s2
s2 - s1 # {4} 属于s2但不属于s1
补集^:返回不同的的元素
s1 = {1, 2, 3}
s2 = {2, 3, 4}
s3 = s1 ^ s2 # {1, 4} 等同于(s1-s2 | s2-s1)
子集<:判断一个集合的所有元素是否完全在另一个集合中
超集>:判断一个集合是否具有另一个集合的所有元素
s1 = {1, 2, 3}
s2 = {2, 3}
s2 < s1 # True
s1 > s2 # True
相同或不同== !=:判断集合中的所有元素是否和另一个集合相同。
s1 = {1, 2, 3}
s2 = {3, 2, 1}
s1 == s2 # True
s1 != s2 # False
子集或相同,超集或相同 <= >=
集合推导式
定义:使用简易方法,将可迭代对象转换为集合。
语法:
{表达式 for 变量 in 可迭代对象}
{表达式 for 变量 in 可迭代对象 if 条件}
固定集合 frozenset
定义:不可变的集合。
作用:固定集合可以作为字典的键,还可以作为集合的值。
基础操作:创建固定集合:frozenset(可迭代对象)
运算:等同于set