想学Python的工程师学习之集合

# 项目名称:集合
# 程序实现目的:
# 开发时间: 2020/11/30 11:01

# 集合属于不可变序列
# 集合是没有value的字典
# 集合的创建
# 1、使用花括号
s={2,3,4,5,5,6,7,7}
print(s) # 集合中的元素不允许重复
# 2、使用内置函数set()
s=set(range(6))
print(s,type(s))
s2=set([1,2,3,5,5,6,7,7])
print(s2,type(s2))
s3=set((1,2,4,4,5,65)) # 集合中的元素是无序的
print(s3,type(s3))
s4=set('Python')
print(s4,type(s4))
s5=set({12,45,76})
print(s5,type(s5))

# 定义一个空集合
s6={} # 字典类型
print(type(s6))
s7=set() # 这是定义空集合
print(type(s7))

# 集合的相关操作
# 集合的判断操作in 、not in
s={10,20,30,40,50}
print(10 in s)
print(100 not in s)
print(70 in s)

# 集合元素的新增操作
s.add(80)
print(s)
s.update({200,400,300}) # 一次至少添加一个元素
print(s)
s.update([100,98,52])
s.update((78,65,56))
print(s)

# 集合元素的删除操作
s.remove(100)
print(s)
# s.remove(900) # 删除时集合中元素必须存在
# print(s)
s.discard(900) # 用这种方法删除,有的话删除,没有也不会报错
print(s)
s.pop() # 一次删除一个任意元素,从左边开始删除
print(s)
s.pop()
print(s)
# s.pop(400) # pop()不能指定参数
s.clear() # 清空集合
print(s)

# 集合间的关系
s={10,20,30,40}
s2={30,40,20,10}
# 两个集合元素相同就相等
print(s==s2)
print(s!=s2)

# 一个集合是不是另一个集合的子集
s1={10,20,30,40,50,60}
s2={10,20,30}
s3={10,20,90}
print(s2.issubset(s1))
print(s3.issubset(s1))
# 一个集合是不是另一个集合的超集
print(s1.issuperset(s2))
print(s1.issuperset(s3))

# 两个结合是否含有交集
print(s2.isdisjoint(s3)) #False表示有交集
s4={100,200,300}
print(s2.isdisjoint(s4)) #True表示没交集

# 集合的数学操作
# 1、交集操作
s1={10,20,30,40}
s2={20,30,40,50,60}
print(s1.intersection(s2))
print(s1 & s2) # &求交集符号
# 2、并集操作
print(s1.union(s2))
print(s1 | s2) # |求并集符号
# 3、差集操作
print(s1.difference(s2)) # s1减去s1和s2的交集
print(s1 - s2) # -求差集符号
# 4、对称差集
print(s1.symmetric_difference(s2)) # 两个集合分别减去交集后的集合

# 集合生成式
# 列表生成式
lst=[i*i for i in range(10)]
print(lst)
# 集合生成式
s={i*i for i in range(10)} # 集合无序
print(s)

# 列表、字典、元组、集合总结
# 数据结构 是否可变 是否重复 是否有序 定义符号
# 列表(list) 可变  可重复   有序     []
# 元组(tuple)不可变 可重复   有序    ()
# 字典(dict) 可变  value可key不可 无序 {key:value}
# 集合(set) 可变    不可重复 无序    {}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值