集合
1. 创建集合
·创建集合使用{}或者set(),但是如果要创建空集合则只能使用set(),因为{}是用来创建空字典的。
·特点:
集合可以去掉重复数据;
集合是无序的,故不支持下标;
# 集合
# 创建集合---使用{}
s1 = {10,20,30,40,50} # 没有重复数据
s2 = {10,20,30,30,40,40,40,50} # 有重复数据
print(s1,s2,sep='\n')
# 创建集合——使用set()
s3 = set('kamenriderdecade')
s4 = set([10,20,30,40])
print(s3,s4,sep='\n')
# 创建空集合
s5 = set() # 只能使用set()创建空集合
print(type(s5))
s6 = {} # 使用{}只能创建空字典
print(type(s6))
{40, 10, 50, 20, 30}
{40, 10, 50, 20, 30}
{'k', 'e', 'm', 'a', 'n', 'r', 'i', 'c', 'd'}
{40, 10, 20, 30}
<class 'set'>
<class 'dict'>
2. 集合常用方法
2.1 增加数据
2.1.1 add()
·因为集合的元素是唯一的,所以如果向集合追加已有数据,则不进行任何操作
s1 = {10,20}
s1.add(100) # 追加没有的元素
print(s1)
s1.add(10) # 追加已有数据,不执行操作
print(s1)
{100, 10, 20}
{100, 10, 20}
2.1.2 update():追加的数据为序列
s1 = {10,20}
# 追加序列
s1.update([100,200])
s1.update('abcdd')
print(s1)
# 追加单独数据,会报错
s1.update(112)
{100, 'b', 200, 10, 'a', 20, 'c', 'd'}
---------------------------------------------------------------------------
TypeError Traceback (most recent call last)
<ipython-input-4-3917c19b6ff9> in <module>
7
8 # 追加单独数据,会报错
----> 9 s1.update(112)
TypeError: 'int' object is not iterable
2.2 删除数据
2.2.1 remove():删除集合中的指定数据,如果数据不存在则报错
s1 = {10,20}
# 删除数据
s1.remove(10)
print(s1)
# 删除不存在数据,会报错
s1.remove(100)
{20}
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
<ipython-input-5-bb4c9ea113b0> in <module>
6
7 # 删除不存在数据,会报错
----> 8 s1.remove(100)
KeyError: 100
2.2.2 discard():删除集合中的指定数据,数据不存在不会报错
s1 = {10,20}
# 删除数据
s1.discard(10)
print(s1)
# 删除不存在数据
s1.discard(100)
print(s1)
{20}
{20}
2.2.3 pop():随即删除集合中某个数据,并返回这个数据
s1 = {10,20,30,40,50}
# pop()
del_num = s1.pop()
print(del_num)
print(s1)
40
{10, 50, 20, 30}
2.3 查找数据
·in:判断数据在集合序列
·not in: 判断数据不在集合序列
s1 = {10,20,30,40,50}
print(10 in s1)
print(10 not in s1)
True
False