python基本数据类型之集合set

集合set

基本数据类型特点(可变:列表,字典   不可变:字符串,数字,元组)

  • 不同的元素组成
  • 无序
  • 集合中的元素必须是不可变类型,加入可变的类型会报错
#!/usr/bin/python3
 
student = {'Tom', 'Jim', 'Mary', 'Tom', 'Jack', 'Rose'}
 
print(student)   # 输出集合,重复的元素被自动去掉
 
# 成员测试
if('Rose' in student) :
    print('Rose 在集合中')
else :
    print('Rose 不在集合中')
 
 
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
 
print(a)
 
print(a - b)     # a和b的差集
 
print(a | b)     # a和b的并集
 
print(a & b)     # a和b的交集
 
print(a ^ b)     # a和b中不同时存在的元素
DEMO

方法:

  A、add  添加,添加可变的数据类型也是会报错的

?
1
2
3
s = { 1 , 2 , 5 , 5 , 'g' , 'h' }
s.add( 3 )
print (s)

  执行结果

?
1
{ 1 , 2 , 3 , 5 , 'h' , 'g' }

  B、clear   清空集合

  C、intersection  交集,相当于&

?
1
2
3
4
5
6
7
s = { 1 , 7 , 9 }
s1 = { 1 , 9 , 5 }
print (s&s1)
print (s.intersection(s1))
 
{ 9 , 1 }
{ 9 , 1 }

   D、union  并集,相当于 |

?
1
2
3
4
s = { 1 , 7 , 9 }
s1 = { 1 , 9 , 5 }
print (s|s1)
print (s.union(s1))<br><br>{ 1 , 5 , 7 , 9 }<br>{ 1 , 5 , 7 , 9 }

  E、difference  差集,相当于-

?
1
2
3
4
5
6
7
s = { 1 , 7 , 9 }
s1 = { 1 , 9 , 5 }
print (s - s1)
print (s.difference(s1))
 
{ 7 }
{ 7 }

  F、symmetric_difference  交叉补集,相当于^

?
1
2
3
4
5
6
7
s = { 1 , 7 , 9 }
s1 = { 1 , 9 , 5 }
print (s^s1)
print (s.symmetric_difference(s1))
 
{ 5 , 7 }
{ 5 , 7 }

  G、difference-update   差集更新

  H、isdisjoint        判断是否有交集

  I、issubset        判断是否为子集

?
1
2
3
4
5
6
7
s1 = { 1 , 2 }
s2 = { 1 , 2 , 3 }
print (s1.issubset(s2))
print (s2.issubset(s1))
 
True
False

  J、issuperset       判断是否为父集

?
1
2
3
4
5
s1 = { 1 , 2 }
s2 = { 1 , 2 , 3 }
print (s2.issuperset(s1))
 
True

  k、update  更新多个值,可迭代都可传

  L、pop,remove,discard  均为删除

?
1
2
3
4
5
6
7
8
9
s = { 9 , 'sb' , 1 , 2 , 3 , 4 , 5 , 6 }
s.pop()                           # pop不能指定删除,只可以随机删除
print (s)
s = { 9 , 'sb' , 1 , 2 , 3 , 4 , 5 , 6 # 指定删除元素,当删除的元素不存在时,删除会报错
s.remove( 4 )
print (s)
s = { 9 , 'sb' , 1 , 2 , 3 , 4 , 5 , 6 }
s.discard( 5 )
print (s)                          # 指定元素删除;和remove唯一的区别删除不存在不会报错

 

转载于:https://www.cnblogs.com/caodneg7/p/10152576.html

1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值