Python3 集合
集合(set)是一个无序不重复元素的序列。
可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
# 创建集合(两种方式) a = {'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h'} b = set('begh') print('a=', a) print('b=', b) # 集合的运算 print('a-b=', a - b) # print('a+b=', a + b) print('a&b=', a & b) print('a|b=', a | b)
输出结果:
a= {'d', 'a', 'h', 'b', 'e', 'c', 'g', 'f'}
b= {'h', 'b', 'e', 'g'}a-b= {'a', 'f', 'd', 'c'}
a&b= {'h', 'b', 'e', 'g'}
a|b= {'d', 'a', 'h', 'b', 'e', 'c', 'g', 'f'}
在这里两个地方出现了问题:
1.注意两种创建方式的格式,即集合和字符串。
2.集合的运算中相加会报错TypeError: unsupported operand type(s) for +: 'set' and 'set'。
集合的基本操作
1、添加元素
# 添加元素 # 添加单个元素:s.add(x) a.add('x') print('添加单元素后:', a) # 添加多个元素(列表、元祖、字典):s.update(x) a.update({'x', 'y', 'z'}) print('添加多个元素后:', a)
输出结果:
添加单元素后: {'d', 'a', 'h', 'b', 'e', 'c', 'g', 'x', 'f'}
添加多个元素后: {'d', 'a', 'h', 'b', 'z', 'e', 'y', 'c', 'g', 'x', 'f'}
2、移除元素
# 移除元素 # s.remove(x):集合 s 中移除元素,如果元素不存在,则会发生错误。 a.remove('c') print('移除元素后:', a) # a.remove('j') 报错:KeyError: 'j' # s.discard(x):移除集合中的元素,且如果元素不存在,不会发生错误。 a.discard('f') a.discard('j') # 不会报错 print('移除元素后:', a) # s.pop():设置随机删除集合中的一个元素 print('随机删除前', a) a.pop() print('随机删除后', a)
输出结果:
移除元素后: {'x', 'z', 'd', 'e', 'h', 'y', 'a', 'g', 'b', 'f'}
移除元素后: {'x', 'z', 'd', 'e', 'h', 'y', 'a', 'g', 'b'}随机删除前 {'x', 'z', 'd', 'e', 'h', 'y', 'a', 'g', 'b'}
随机删除后 {'z', 'd', 'e', 'h', 'y', 'a', 'g', 'b'}
3、计算集合元素个数
# 计算集合元素个数 print(len(a))
4、判断元素是否在集合中存在
# 判断元素是否在集合中存在 print('x' in a) # Ture print('u' in a) # False