8.python集合的基础操作

集合

#集合是一个无序,并且不重复的序列,基本使用大括号:{}进行表示或者使用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
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奔跑的蜗牛—平静从我开始

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值