引言
Python 中的集合(Set)是一个无序的、不包含重复元素的数据结构。
一、集合的定义
集合主要用于数学上的集合操作,如并集、交集、差集和对称差集等。集合由大括号 {} 表示,但请注意,在定义空集合时不能使用 {}(这会创建一个空字典),而应该使用 set()。集合的特性:不重复,可以用于去重;无序,不可以使用下标。
集合的定义:方式一:{a,b,c,d} ,缺点是不能定义空集合。
s = {1, 2, 3, 4}
print(s, type(s))
#结果:{1, 2, 3, 4} <class 'set'>
方式二:set(),空集合;
s = set()
print(s, type(s))
#结果:set() <class 'set'>
set(iterable),将可迭代类型元素依次放入集合。
s = set(range(5))
print(s, type(s))
#结果:{0, 1, 2, 3, 4} <class 'set'>
集合的遍历:for e in {1,3,4,5}:,将集合中的每一个元素依次赋予e。
for e in {1, 2, 3, 4}:
print(e)
#结果:1
2
3
4
二、集合的常见操作
1.add,添加元素。
s = {"a", "b", "c"}
s.add("d")
print(s)
#结果:{'c', 'd', 'b', 'a'}
2.update,合并集合到原始集合。
s = {"a", "b", "c"}
s2 = set(range(3))
s.update(s2)
print(s)
#结果:{0, 1, 'a', 2, 'c', 'b'}
3.pop,删除集合内任一元素,可以返回删除的元素。
s = {"a", "b", "c"}
# s2 = set(range(3))
s.pop()
print(s)
#结果:{'b', 'a'}
4.remove,删除指定元素。
s = {"a", "b", "c"}
# s2 = set(range(3))
s.remove("b")
print(s)
#结果:{'a', 'c'}
指定元素不存在则报错。
s = {"a", "b", "c"}
# s2 = set(range(3))
s.remove("e")
print(s)
结果:
5.discard,删除指定元素,不存在不会报错。
s = {"a", "b", "c"}
# s2 = set(range(3))
s.discard("e")
print(s)
#结果:{'b', 'a', 'c'}
6.clear,清空集合。
s = {"a", "b", "c"}
# s2 = set(range(3))
s.clear()
print(s)
#结果:set()
7.intersection,两集合的交集,是双方共有的。
s = {"a", "b", "c"}
s2 = {"d", "b", "c"}
s3 = s.intersection(s2)
print(s3)
#结果:{'b', 'c'}
8.union,两集合的并集,一方有即可。
s = {"a", "b", "c"}
s2 = {"d", "b", "c"}
s3 = s.union(s2)
print(s3)
#结果:{'c', 'a', 'b', 'd'}
9.difference,两集合的差集,是一方有一方没有的。
s = {"a", "b", "c"}
s2 = {"d", "b", "c"}
s3 = s.difference(s2)
print(s3)
#结果:{'a'}
总结
集合是 Python 中非常有用的数据结构,特别是在处理不需要索引顺序,且需要去除重复元素的场景时。