文章目录
集合
#集合是一个无序,并且不重复的序列,基本使用大括号:{}进行表示或者使用set()函数创建集合
#创建一个空集合不能像列表或者元组那样直接使用[]或()来创建,必须使用set()函数方法创建
#因为集合是一个无序的序列类型,所以集合是不存在索引的,以此不能通过索引进行取值
创建集合
'''
集合创建可以使用{1,2,3}或者set()方法
'''
print('console'.center(50,'-'))
#创建一个非空的集合
set_1 = {1,2,3} #创建一个非空的集合
print(type(set_1))
print(set_1)
#创建一个空字典
set_2 = {}#创建空集合不能使用该方法进行创建,该方法会创建一个空的字典(dict)类型
print(type(set_2))
print(set_2)
#创建空集合
set_3 = set()#创建一个空集合
print(type(set_3))
print(set_3)
#去重
set_4= {1,2,3,3} #创建一个去重的集合,对于重复的数据会进行1去重
print(type(set_4))
print(set_4)
---------------------console----------------------
<class 'set'>
{1, 2, 3}
<class 'dict'>
{}
<class 'set'>
set()
<class 'set'>
{1, 2, 3}
访问集合
#集合是没有索引且无序的,所以不能通过索引取值,不过可以通过遍历的方式进行获取
print('console'.center(50,'-'))
set_1 = {1,2,3}
for set_index in set_1:
print(set_index)
---------------------console----------------------
1
2
3
添加集合的值
添加单个值:add(value)
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_1.add(5)
print(set_1)
set_1.add(1)#如果添加已存在的,则不会
print(set_1)
---------------------console----------------------
{1, 2, 3, 4, 5}
{1, 2, 3, 4, 5}
添加多个值:update(seq)
'''
参数说明:
seq: 可以是列表,元组,集合等可迭代的类型
'''
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
list_1 = [5,6,7]
set_1.update(list_1)
print(set_1)
---------------------console----------------------
{1, 2, 3, 4, 5, 6, 7}
移除集合的值
set.remove(value): 移除指定集合的值
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_1.remove(1)
print(set_1)
#set_1.remove(5) #如果元素不存在,则会抛错
---------------------console----------------------
{2, 3, 4}
set.discard(value): 移除指定集合的值
#discard函数方法于remove都可以删除,两者的区别是remove(x)x不存在集合,则会抛错,而discard则不会
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_1.discard(1)
print(set_1)
set_1.discard(5) #元素不存在,也不会抛错
---------------------console----------------------
{2, 3, 4}
set.pop():随机删除集合的值
#pop()会随机删除一个集合的值,并进行返回
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_1_result = set_1.pop()
print(set_1_result)
print(set_1)
---------------------console----------------------
1
{2, 3, 4}
清空/删除集合
set.clear():清空集合里面的值
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_1.clear()
print(set_1)
---------------------console----------------------
set()
删除集合的值:del
#del和clear()方法的区别,前者会删除整个集合的变量,导致参数不存在,后者只会情况该变量对应下集合里面的值,变成一个空集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
del set_1
#print(set_1)#抛错,该集合的变量已经不存在了
---------------------console----------------------
获取集合的长度:len(seq)
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_length = len(set_1)
print(set_length)
---------------------console----------------------
4
判断值是否在集合中:in
#使用in进行判断 ,存在则返回True,不存在则返回False
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_is_exist = 1 in set_1
print(set_is_exist)
set_is_exist = 6 in set_1
print(set_is_exist)
---------------------console----------------------
True
False
set.copy():复制集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = set_1.copy()
print(id(set_1))
print(id(set_2))
print(set_2)
---------------------console----------------------
2498349271976
2498351381864
{1, 2, 3, 4}
集合的并集
set.union(seq): 合并成一个新的集合数据
#union()方法会返回两个集合之间的并集,且类型也是为集合类型
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_3 = set_1.union(set_2) #存在重复的集合会自动去重
print(type(set_3))
print(set_3)
---------------------console----------------------
<class 'set'>
{1, 2, 3, 4, 5, 6}
set.update(seq):集合的合并,在原来的集合上更新集合数据
'''
参数说明:
seq: 可以是列表,元组,集合等可迭代的类型
'''
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_1.update(set_2)
print(type(set_3))
print(set_1)
---------------------console----------------------
<class 'set'>
{1, 2, 3, 4, 5, 6}
集合的差集
set.difference(seq):返回一个新的差集集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_difference_result = set_1.difference(set_2)
print(set_difference_result)
---------------------console----------------------
{1, 2}
set.difference_update(seq):在原来的集合中进行移除交集的数据,生成差集集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_1.difference_update(set_2)
print(set_1)
---------------------console----------------------
{1, 2}
集合的交集
set.intersection(set):返回一个新的交集集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_intersection_result = set_1.intersection(set_2)
print(set_intersection_result)
---------------------console----------------------
{3, 4}
set.intersection_update(set):在原来的集合中进行移除差集的数据,生成交集集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_1.intersection_update(set_2)
print(set_1)
---------------------console----------------------
{3, 4}
返回两个集合的不重复集合
set.symmetric_difference(set):返回一个新的两个集合不重复集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_symmetric_difference_result = set_1.symmetric_difference(set_2)
print(set_symmetric_difference_result)
---------------------console----------------------
{1, 2, 5, 6}
set.symmetric_difference_update(set):在原来的集合中生成新的两个不重复集合的集合
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_1.symmetric_difference_update(set_2)
print(set_1)
---------------------console----------------------
{1, 2, 5, 6}
set.isdisjoint(set):判断两个集合是否有交集
#如果不存在交集则返回True,否则返回False
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_result = set_1.isdisjoint(set_2)
print(set_result)
---------------------console----------------------
False
set.issubset(set):判断指定集合是否是参数集合的子集
#如果包含则返回True,否则返回False
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_3 = {1,2,3}
set_result = set_2.issubset(set_1)
print(set_result)
set_result = set_3.issubset(set_1)
print(set_result)
---------------------console----------------------
False
True
set.issuperset(set):判断参数集合是否是指定集合的子集
#如果包含则返回True,否则返回pFalse
print('console'.center(50,'-'))
set_1 = {1,2,3,4}
set_2 = {3,4,5,6}
set_3 = {1,2,3}
set_result = set_1.issuperset(set_2)
print(set_result)
set_result = set_1.issuperset(set_3)
print(set_result)
---------------------console----------------------
False
True