·创建集合使用{}或者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}
·因为集合的元素是唯一的,所以如果向集合追加已有数据,则不进行任何操作
s1 = {
10,20}
s1.add(100) # 追加没有的元素
print(s1)
s1.add(10) # 追加已有数据,不执行操作
print(s1)
{100, 10, 20}
{100, 10, 20}
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)
in
7
8 # 追加单独数据,会报错
----> 9 s1.update(112)
TypeError: 'int' object is not iterable
s1 = {
10,20}
# 删除数据
s1.remove(10)
print(s1)
# 删除不存在数据,会报错
s1.remove(100)
{20}
---------------------------------------------------------------------------
KeyError Traceback (most recent call last)
in
6
7 # 删除不存在数据,会报错
----> 8 s1.remove(100)
KeyError: 100
s1 = {
10,20}
# 删除数据
s1.discard(10)
print(s1)
# 删除不存在数据
s1.discard(100)
print(s1)
{20}
{20}
s1 = {
10,20,30,40,50}
# pop()
del_num = s1.pop()
print(del_num)
print(s1)
40
{10, 50, 20, 30}
·in:判断数据在集合序列
·not in: 判断数据不在集合序列
s1 = {
10,20,30,40,50}
print(10 in s1)
print(10 not in s1)
True
False