集合
集合的特点:
- 无序【因此:不支持下标(索引)】
- 不重复
集合的创建:
- 使用大括号{}
- 使用set()函数
注意:创建一个空集合必须用set(),而不是{},因为{}是用来创建一个空字典。
# 创建一个空字典:
dic = {}
print(dic, type(dic)) # {} <class 'dict'>
# 创建一个空集合:
se = set()
print(se, type(se)) # set() <class 'set'>
"""如果我们集合中的元素是数值类型且属于0-9之间,会按从小到大的顺序排列"""
s1 = {1, 3, 4, 9, 5, 6, 6, 6}
print(s1) # {1, 3, 4, 5, 6, 9}
s2 = {10, 20, 60, 22, 40}
print(s2) # {20, 22, 40, 10, 60}
# 集合中的元素可以是字符串:
s3 = set('123456')
print(s3) # {'4', '1', '3', '5', '6', '2'}
集合的常见操作方法:
增加数据:
add():
使用add()添加的元素,只能是数字、字符串、元组或布尔类型值,不能添加列表、字典、集合这些可变类型的数据。否则,Python解释器会报TypeError错误。
小结:
add(),只能增加不可变数据类型,不能增加可变数据类型
s1 = set('13357')
s1.add(9)
s1.add('9')
print(s1) # {'7', '3', '1', 9, '9', '5'},因集合是去重,因此只打印一个3
update():追加的数据为序列。
# update()
s2 = {10, 20}
# s2.update(100) # 报错:“int”对象不可迭代
s2.update([100, 200])
s2.add('abc')
print(s2) # {'abc', 100, 200, 10, 20}
删除数据:
remove():删除集合中的指定数据,如果数据不存在,则报错。
s2.remove(10)
# s2.remove(30) # 删除不存在的内容时,报错:KeyError: 30
print(s2)
discard():删除集合中的指定数据,如果数据不存在也不会报错。
"""discard() 删除"""
s3 = {10, 20}
s3.discard(10)
print(s3) # {20}
s3.discard(100) # 删除的数据不存在,不会报错,而是返回一个集合
print("删除一个不存在的数据时:", s3) # {20}
pop():随机删除集合中的一个数据,并返回该数据。
"""pop(),随机删除"""
s4 = set('123456789')
print(s4) # {'5', '7', '3', '4', '8', '2', '6', '9', '1'}
del_num = s4.pop() # 随机删除
print(del_num) # 2
print(s4) # {'9', '1', '7', '5', '4', '3', '8', '6'}
查找数据:
- in:判断数据在集合序列
- not in:判断数据不在集合序列
s5 = set(('apple', '华为', '小米'))
print('apple' in s5) # True