集合 SET

本文深入讲解了Python中集合的基本概念,包括创建、增删元素、集合运算如并集、交集、差集等,以及集合的内置方法和推导式的使用。通过实例演示了集合在数据处理中的应用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

集合 SET

定义:

只有键没有值的字典,保留无序的元素,没有索引。集合的元素不可变。

创建:

1.set_1 = set(seq)

2.set_2 = {} 

list_1 = [1,2,3,45,4,2]
set_1 = set(list_1)
set_2 = {1,1,2,3,4,3}
print(set_1)             #out:{1, 2, 3, 4, 45}
print(set_2)             #out:{1, 2, 3, 4}

创建只有一个元素的集合

set_11 = set(('python',))  
set_12 = {'python'}
set_3 = set('hello')
print(set_11)           #out:{'python'}
print(set_12)           #out:{'python'}
print(set_3)            #out:{{'e', 'l', 'o', 'h'}

创建多个元素的集合

set_21 = set(('hello','python'))
set_22 = set(('hello','python'))
set_23 = {'hello','python'}
print(set_21)                  #out:{{'hello', 'python'}
print(set_22)                  #out:{{'hello', 'python'}
print(set_23)                  #out:{{'hello', 'python'}

增:

单个增加

set_a = set(('hello','python'))
set_a.add('world')
print(set_a)   #out:{'hello', 'python', 'world'}

批量增加

set_u =  set(('hello',))
set_p = set(('python',))
set_u.update(set_p)
print(set_u)                #out:{'hello', 'python'}
set_u.update({'world'})     
print(set_u)                #out:{'world', 'hello', 'python'}
set_u.update('world')       
print(set_u)                #{'w', 'python', 'world', 'o', 'l', 'd', 'r', 'hello'}

 

 

删:

remove:删除指定元素。若元素不存在则会报错。

discard:删除指定元素。若元素不存在则不会报错。

pop:随机删除元素,然而在交互模式,pop 是删除集合的第一个元素(排序后的集合的第一个元素)。

set_r = set(('hello','python','world','qsl'))
set_r.remove('hello')
print(set_r)           #out:{'world', 'qsl', 'python'}
set_r.pop()
print(set_r)           #out:{'qsl', 'python'}
set_r.discard('qsl')
print(set_r)           #out:{'python'}
set_r.discard('hello')
print(set_r)           #out:{'python'}
set_r.remove('hello')  #out:KeyError: 'hello'

 

 

集合的操作:

#并集
#set_a|set_b = set_b|set_a = set_a.union(set_b) = set_b.union(set_a)
set_a = set(('hello','python'))
set_b = set(('hello','world'))
print(set_a|set_b)           #out:{'world', 'hello', 'python'}
set_a.update(set_b)
print(set_a)                 #out:{'world', 'hello', 'python'} 
print(set_a.update(set_b))   #out: None

#交集
#set_a.intersection(set_b)= set_a&set_b =set_b.intersection(set_a) = set_b&set_a
set_a = set(('hello','python'))
set_b = set(('hello','world'))
print(set_a&set_b)           #out:{'hello'}

#差集:set_a中有而set_b中无
#set_a.difference(set_b) = set_a-set_b
set_a = set(('hello','python'))   
set_b = set(('hello','world'))
print(set_a.difference(set_b))   #out:{'python'}
print(set_a-set_b)               #out:{'python'}  



#判断子集:查看set_a是否为set_b的子集
# set_a.issubset(set_b) = set_a <= set_b
set_a = set(('hello','python'))   
set_b = set(('hello','world'))
print(set_a.issubset(set_b))            #out:False  
print(set_a <= set_b)                   #out:False         

内置方法

序号方法说明
1add()为集合添加元素,一次只能加一个
2update()给集合添加元素,一个可以加多个
3copy()拷贝一个集合
4clear()移除集合中的所有元素
5discard()删除集合中指定的元素,若不存在,不会报错
6remove()移除指定元素,若不存在,则会报错
7pop()随机移除元素
8union() 返回两个集合的并集
9intersection() 返回集合的交集
10difference()返回多个集合的差集
11difference_update()移除集合中的元素,该元素在指定的集合也存在
12

intersection_update()

 删除集合中的元素,该元素在指定的集合中不存在
13issubset() 判断指定集合是否为该方法参数集合的子集。
14isdisjoint() 判断两个集合是否包含相同的元素,如果没有返回 True,否则返回 False
15issuperset() 判断该方法的参数集合是否为指定集合的子集
16symmetric_difference() 返回两个集合中不重复的元素集合
17

symmetric_difference_update() 

移除当前集合中在另外一个指定集合相同的元素,并将另外一个指定集合中不同的元素插入到当前集合中

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

推导式:

 和列表推导式相似,都是对一个序列进行操作。

但集合推导式的结果无序且不重复。

list_1 = [1,2,3,-1,4,-2]
set_1 = { i**2 for i in list_1 }
print(set_1)                       #out:{16, 1, 4, 9}
print(type(set_1))                 #out:<class 'set'>

 

转载于:https://www.cnblogs.com/qianslup/p/11061679.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值