一、集合的定义
- 集合(set)是一个无序的不重复元素序列。
- 创建集合用花括号或 set() 函数。
- 创建空集合只能用 set(),不能用 {},{} 创建的是空字典。
- 基本用法包括成员检测、消除重复元素。
# 集合的定义
a = {1} # 不能使用a={},这样定义的是一个空字典。
b = set() # 定义一个空集合
c = set('qwertyuiq')
print(type(a))
print(type(b))
print(c) # 打印出来是无序的不重复元素序列
输出结果:
>>>
>>>
>>> {'r', 'u', 't', 'y', 'w', 'i', 'q', 'e'}
二、集合的内置函数与基本操作
- 集合的数学运算
a = {1,2,3}
b = {1,4,5}
# 求并集
print(a.union(b))
print(a | b)
# 求交集
print(a.intersection(b))
print(a & b)
# 求差集
print(a.difference(b))
print(a - b)
# 不同时包含于a和b的元素
print(a ^ b)
输出结果:
>>> {1, 2, 3, 4, 5}
>>> {1, 2, 3, 4, 5}
>>> {1}
>>> {1}
>>> {2, 3}
>>> {2, 3}
>>> {2, 3, 4, 5}
- 同列表推导式类似,集合同样支持集合推导式
a = {i for i in 'hauhusbshsgdbahah' if i not in 'ha'}
print(a)
输出结果:
>>> {'s', 'b', 'd', 'g', 'u'}
- 添加元素
# 添加元素
a = {1,2,3}
a.add('a')
print(a)
# 下面这个方法也可以添加元素,且参数可以是列表,元组,字典等
b = {1,4,5}
b.update('b') # 添加元素
print(b)
c1 = {6,7,8,9}
c1.update([1,2,3]) # 添加列表
print(c1)
c2 = {6,7,8,9}
c2.update(('chinese','english','math','music')) # 添加元组
print(c2)
c3 = {6,7,8,9}
c3.update({4,5}) # 添加集合
print(c3)
c4 = {6,7,8,9}
c4.update({"name":"hahaha"}) # 添加字典
print(c4)
输出结果:
>>> {'a', 1, 2, 3}
>>> {'b', 1, 4, 5}
>>> {1, 2, 3, 6, 7, 8, 9}
>>> {6, 7, 8, 9, 'chinese', 'music', 'math', 'english'}
>>> {4, 5, 6, 7, 8, 9}
>>> {6, 7, 8, 9, 'name'}
- 移除元素
# 将元素 x 从集合 s 中移除,如果元素不存在,则会发生错误
a = {1,2,3}
a.remove(3)
print(a)
b = {"aaa","bbb","ccc"}
b.remove("eee") # 这种情况就会报错
print(b)
# 移除集合中的元素,且如果元素不存在,不会发生错误
c = {4,5,6}
c.discard('7')
print(c)
# 设置随机删除集合中的一个元素
# pop 方法会先对集合进行无序的排列,然后将这个无序排列集合的左面第一个元素进行删除
d = {"hello","123","aaa"}
d.pop()
print(d)