一、集合是没有 value 的字典(与字典一样,数值元素不能重复,而且元素无序)
(1)可以用 set() 来创建集合
输入:
s1 = set(range(1, 11))
print(s1)
s2 = set([1, 1, 2, 2, 3])
print(s2)
输出:
{1, 2, 3, 4, 5, 6, 7, 8, 9, 10}
{1, 2, 3}
二、添加元素
(1)使用 .add() 添加单个元素
输入:
a = {1, 2, 3, 4, 5}
a.add(6)
print(a)
输出:
{1, 2, 3, 4, 5, 6}
(2)使用 .update() 添加多个元素(添加对象可以是集合,列表或是元组)
输入:
a = {1, 2, 3, 4, 5}
b = {6, 7, 8, 9}
a.update(b)
print(a)
输出:
{1, 2, 3, 4, 5, 6, 7, 8, 9}
三、删除元素
(1)使用 .remove() 删除单个元素
输入:
a = {1, 2, 3, 4, 5}
a.remove(1)
print(a)
输出:
{2, 3, 4, 5}
注意:用 .remove 若元素不存在会报错,用 .discard() 不会报错
(2).pop() 为随机删除一个元素
(3).clear() 为清空集合
四、集合间的关系
(1)相等,包含元素相同就相等
(2)判断一个集合是否是另外一个集合的子集,用 .issubset()
输入:
a = {1, 2, 3, 4, 5}
b = {1, 2, 3}
print(a.issubset(b))
print(b.issubset(a))
输出:
False
True
(3)判断一个集合是否是另外一个集合的超集(比如b是a的子集,那么a是b的超集)
(4)判断两个集合是否含有交集,使用 .isdisjoint()
输入:
a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.isdisjoint(b))
输出:
False
五、集合的数学操作
(1)求交集,用 .intersection() 或 & ,两个集合本身并没有发生改变
输入:
a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.intersection(b))
print(a & b)
输出:
{4, 5}
(2)求并集,使用 .union() 或 | ,两个集合本身并没有发生改变
输入:
a = {1, 2, 3, 4, 5}
b = {4, 5, 6}
print(a.union(b))
print(a | b)
输出:
{1, 2, 3, 4, 5, 6}
{1, 2, 3, 4, 5, 6}
(3)求差集,使用 .difference() 或 - ,两个集合本身并没有发生改变
输入:
a = {1, 2, 3, 4, 5, 6}
b = {3, 4, 5, 6, 7, 8}
print(a - b)
print(b - a)
print(a.difference(b))
print(b.difference(a))
输出:
{1, 2}
{8, 7}
{1, 2}
{8, 7}
(4)对称差集,
输入:
a = {1, 2, 3, 4, 5}
b = {3, 4, 5, 6, 7, 8}
print(a ^ b)
print(a.symmetric_difference(b))
输出:
{1, 2, 6, 7, 8}
{1, 2, 6, 7, 8}
集合生成式
输入:
a = {i for i in range(1, 11)}
print(a)
输出:
a = {i for i in range(1, 11)}
print(a)
总结:
(1)只有元组内的数据不可变
(2)字典和集合不可重复