集合的特性
- 集合因为无序性,对于索引 切片 重复 连接都不支持;
- 对于成员操作符和for循环支持;
- 添加元素的顺序和存储的顺序无关;
去除重复元素
l = [1,3,4,5,5,4,2]
l = set(l)
print(l)
输出结果:
{1, 2, 3, 4, 5}
增加单个元素以及多个元素
l.add(9)
print(l)
输出结果:
{1, 2, 3, 4, 5, 9}
l.update([6,7,8])
print(l)
输出结果:
{1, 2, 3, 4, 5, 6, 7, 8, 9}
删除指定元素以及随机删除元素
l.remove(8)
print(l)
输出结果:
{1, 2, 3, 4, 5, 6, 7, 9}
l.pop()
print(l)
输出结果:
{2, 3, 4, 5, 6, 7, 9}
清除集合的元素
l.clear()
print(l)
输出结果:
set()
关系测试
关系测试:测试两组数据之前的交集、差集、并集等关系
集合:
s1 = {1,2,3}
s2 = {1,2,4}
交集
#以下两个求交集方式等同
print(s1.intersection(s2))
print(s1 & s2)
输出结果:
{1, 2}
{1, 2}
并集
print(s1 | s2)
print(s1.union(s2))
输出结果:
{1, 2, 3, 4}
{1, 2, 3, 4}
差集
#求取s1与s2的差集
print(s1.difference(s2))
print(s1 - s2)
#求取s2与s1的差集
print(s2.difference(s1))
print(s2 - s1)
输出结果:
{3}
{3}
{4}
{4}
对等差分
数学术语“对等差分”的集合就是指由所有只在两个集合其中之一的元素组成的集合(s1△ s2 = {3, 4})
print(s1.symmetric_difference(s2))
print(s1^s2)
输出结果:
{3, 4}
{3, 4}
集合的子集与父集
集合:
s3 = {1,2}
s4 = {1,2,3}
#s3是s4的子集?
print(s3.issubset(s4))
输出结果:
True
#s3是s4的父集?
print(s3.issubset(s4))
输出结果:
True
#s3和s2有交集吗?有返回true否则返回false
print(s3.isdisjoint(s2))
输出结果:
False