set()
将目标变量转换为集合形式。
set(字符串)会将字符串中每个字符变为集合元素,set([列表])会将列表中每一个元素变为集合中的元素。
s1 = set('hello')
print(s)
s2 = set(["alex", "alex", "nice"])
print(s2)
.add()
向集合中添加元素
s = {1, 2, 3, 4, 5, 6}
s.add('3')
print(s)
.clear()
清空集合
s = {1, 2 ,3, 4, 5}
s.clear()
print(s)
.copy()
浅拷贝
s = {1, 2 ,3, 4, 5}
s1 = s.copy()
print(s1)
.pop()
随机删除集合中的一个元素。
s = {1, 2 ,3, 4, 5, "a"}
s.pop()
print(s)
.remove()
删除指定的元素,如果被删除项不在原集合中程序会报错。
s = {1, 2 ,3, 4, 5, "a"}
s.remove('a')
print(s)
.discard()
删除指定元素,但当被删除元素不存在时不会报错。
s = {1, 2 ,3, 4, 5, "a"}
s.discard('dsa')
print(s)
.intersection()
求交集
seta.intersection(setb)的符号表达为seta & setb
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
s3 = s1.intersection(s2)
s4 = s1 & s2
print(s3, s4)
.union()
求并集
seta.union(setb)的符号表达为seta | setb
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
s3 = s1.union(s2)
s4 = s1 | s2
print(s3, s4)
.difference()
求差集
seta.difference(setb)的符号表达为seta - setb
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
s3 = s1.difference(s2)
s4 = s1 - s2
print(s3, s4)
.symmetric_difference()、.symmetric_difference_update()
求交叉补集,即县求并集后减去交集。
seta.symmetric_difference(setb)的符号表达为seta ^ setb
seta.symmetric_difference_update(setb)方法为将seta与setb的交叉补集赋值给seta
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
s3 = s1.symmetric_difference(s2)
s4 = s1 ^ s2
print(s3, s4)
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4, "dsa"}
s1.symmetric_difference_update(s2)
print(s2)
.isdisjoin()
判断是否不存在交集,返回布尔值。
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
print(s1.isdisjoin(s2))
…issubset()
判断是否是子集,返回布尔值。
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
print(s1,issubset(s2)) #判断s1是否是s2的子集
.issuperset()
判断是否是父集,返回布尔值。
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "c", 4}
print(s1.issuperset(s2))#判断s1是否是s2的父集
.update()
更新集合中多个元素。
.add()方法只能添加一个元素。
s1 = {"a", "b", "c", 1, 2, 3, 4}
s2 = {"a", "b", "c", 4, "dsa"}
s1.update(s2)
print(s1)
集合的其他内容:
集合内的元素必须是不同元素,所以可以通过集合来寻找两个列表相同的部分。
集合内的元素是无序的,所以无引索、切片。
set集合是可变类型,frozenset集合是不可变类型。
集合内元素可以迭代。