前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python数据结构:集合

Python数据结构:集合

作者头像
py3study
发布2020-01-19 12:47:01
2970
发布2020-01-19 12:47:01
举报
文章被收录于专栏:python3
  • 集合的定义

 使用大括号,并且里面必须有初始值,否则是dict字典类型

  • 集合的特征

集合内部的元素无序,所以不能使用索引、切片等操作

集合内部的元素具有唯一性,不允许元素重复出现

集合内部的元素,只能存放int, float, str, tuple等必须是可哈希的数据,set类型本身不可哈希

代码语言:javascript
复制
s1 = {1,2,3,'a','b','c',7,8,9}
s2 = {}

print(type(s1)) #输出<class 'set'>
print(type(s2)) #输出<class 'dict'>

for i in s1:
    print(i,end=' ') #输出1 2 3 b 7 8 9 a c,可见set是无序的
  •  多循环的集合内涵
代码语言:javascript
复制
s1 = {1,2,3}
s2 = {'i', 'love', 'you'}

s3 = {m * n for m in s2 for n in s1} #相当于把s2中的每个元素乘以1/2/3
print(s3) #输出{'iii', 'lovelove', 'you', 'youyou', 'i', 'youyouyou', 'ii', 'love', 'lovelovelove'}
  •  删除元素
代码语言:javascript
复制
s = {'a','b','c','d','e','f'}
# s.remove('k') #remove删除不存在的元素报错keyerror
s.discard('k') #discard删除不存在的元素不报错,只是删除失败而已
  • 交叉并补

交集intersection

差集difference

并集union

子集issubset:检查一个集合是否为另一个集合的子集

超集issuperset:检查一个集合是否为另一个集合的超集(如果一个集合S2中的每一个元素都在集合S1中,且集合S1中可能包含S2中没有的元素,则集合S1就是S2的一个超集,反过来,S2是S1的子集)

代码语言:javascript
复制
s1 = {1,2,3,4,5,6}
s2 = {5,6,7,8,9,0}

s3 = s1.intersection(s2) #s1与s2的交集
print(s3) #输出{5, 6}

s4 = s1.difference(s2) #s1与s2的差集,相当于s1-s2
print(s4) #输出{1, 2, 3, 4}

s5 = s1.union(s2) #s1与s2的并集
print(s5) #输出{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

i1 = s1.issubset(s2) #判断s2是否为s1的子集,i1为False
i2 = s1.issuperset(s2) #判断s2是否为s1的超集,i2为False
  •  冰冻集合

不可以进行任何修改操作的集合,其他属性与集合完全一致。

代码语言:javascript
复制
s = {1,2,3}
s = frozenset(s)
print(s) #输出frozenset({1, 2, 3})
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/03/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档