提示:以下是本篇文章正文内容,下面案例可供参考
集合(set)是一个无序的不重复元素的集,基本功能包括关系测试和消除重复元素。是可变的数据类型。
集合数据类型的核心在于自动去重。
集合使用大括号{}框定元素,并以逗号进行分隔。
s = {} # 直接用{}括号创建的是字典
print(type(s)) # <class 'dict'>
s1 = set()
print(s1) # set()
print(type(s1)) # <class 'set'>
s2 = set([1, 2, 3, 1, 2, 3, 4, 5, 6, 6, 5])
print(s2) # {1, 2, 3, 4, 5, 6} 自动去重
s3 = set('hello world')
print(s3) # {'w', 'h', 'r', 'e', 'd', 'o', 'l', ' '} 自动去重,且无序
通过set.add(key)方法可以添加元素到set中
s1 = set([1, 2, 2, 3, 3, 4, 5, 6])
s1.add(7)
print(s1) # {1, 2, 3, 4, 5, 6, 7}
s1.add('Tom')
print(s1) # {1, 2, 3, 4, 5, 6, 7, 'Tom'} 添加的元素可以是任意类型
s1.add([1, 2, 3])
print(s1) # TypeError: unhashable type: 'list'同字典一样,只能添加不可变对象
可以使用set.update()方法,将另一个对象更新到已有的集合中,这一过程同样会进行去重。
s = set([1, 3, 2, 4, 5, 6, 5])
s.update('hello world') # 将helloworld每个拆开添加到s中,任然去重。
print(s) # {1, 2, 3, 4, 5, 6, 'l', 'o', 'e', ' ', 'w', 'h', 'd', 'r'}
set.remove(key):删除指定元素
set.pop():随机删除元素()中无参数
s = {1, 2, 3, 4}
# print(s[0]) # 没有下标概念,会报错 TypeError: 'set' object does not support indexing
s.remove(4)
print(s) # {1, 2, 3}
# s.remove(5)
# print(s) # 元素不存在时,会报错 KeyError: 5
s1 = set([1, 2, 3, 4, 5, 6, 7, 8, 9, 7, 10])
s1.pop() # 随机删除
print(s1) # {2, 3, 4, 5, 6, 7, 8, 9, 10}
注意:
集合不能取出元素,因为集合是无序的,没有不支持索引,也不支持字典那样读取键值对。