码迷,mamicode.com
首页 > 编程语言 > 详细

Python3 集合

时间:2018-11-22 15:20:48      阅读:177      评论:0      收藏:0      [点我收藏+]

标签:返回   大括号   而不是   sub   val   car   lin   集合   iss   

    集合相关的功能详解

 

 

    

集合(set)是一个无序的不重复元素序列。

可以使用大括号 { } 或者 set() 函数创建集合,注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

创建格式:

parame = {value01,value02,...}
或者
set(value)


  • add: 添加元素
st = {1, 2, ‘aa‘, ‘bb‘}

st.add(3)

print(st)
输出;
{1, 2, 3, ‘bb‘, ‘aa‘}


  • clear:清空
st = {1, 2, ‘aa‘, ‘bb‘}

st.clear()

print(st)
输出:
set()


  • copy:浅拷贝
st = {1, 2, ‘aa‘, ‘bb‘}

v = st.copy()

print(st)
输出:
{‘bb‘, 1, 2, ‘aa‘}


  • discard:移除,如果元素不存在,不报错
st = {1, 2, ‘aa‘, ‘bb‘}
#st2 = {1, 2, ‘aa‘ ,‘cc‘}

st.discard(‘aa‘)
print(st)
st.discard(‘cc‘)
print(st)
输出:

{1, 2, ‘bb‘}
{1, 2, ‘bb‘}



  • remove:移除,如果元素不存在,报错
st = {1, 2, ‘aa‘, ‘bb‘}
#st2 = {1, 2, ‘aa‘ ,‘cc‘}

st.remove(‘aa‘)
print(st)
st.remove(‘cc‘)
print(st)

输出:

{1, 2, ‘bb‘}
Traceback (most recent call last):
File "C:/Users/PycharmProjects/t3.py", line 8, in <module>
st.remove(‘cc‘)
KeyError: ‘cc‘



  • pop:随机移除
st = {1, 2, ‘aa‘, ‘bb‘}
#st2 = {1, 2, ‘aa‘ ,‘cc‘}

st.pop()
print(st)
输出:

{1, 2, ‘bb‘}



  • update:修改成union之后的元素。即所有元素
st = {3, 4, ‘dd‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘bb‘}

st.update(st2)
print(st)
输出:
{1, 2, 3, 4, ‘aa‘, ‘bb‘, ‘dd‘}


  • difference: 集合的差集,相当于 ‘-‘
st = {1, 2, ‘aa‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘cc‘}
v = st2 - st
print(v)
v = st2.difference(st)
print(v)
输出:

{‘cc‘}

 

 

 

  • difference_update:移除集合中存在另一集合的元素
st = {1, 2, ‘aa‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘cc‘}

st2.difference_update(st)
print(st2)
输出:
{‘cc‘}

 

  • intersection:交集,’&‘
st = {1, 2, ‘aa‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘cc‘}

v = st.intersection(st2)
print(v)
v = st & st2
print(v)
输出:

{‘aa‘, 1, 2}
{‘aa‘, 1, 2}



  • intersection_update:求交集并更改原集合
st = {1, 2, ‘aa‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘cc‘}

st.intersection_update(st2)
print(st)
print(st2)
输出:

{1, 2, ‘aa‘}
{‘cc‘, 1, 2, ‘aa‘}



  • isdisjoint: 是否存在交集,存在返回false,不存在返回True
st = {3, 4, ‘dd‘, ‘bb‘}
st1 = {1, 2, ‘aa‘ ,‘cc‘}
st2 = {1, 2, ‘aa‘ ,‘bb‘}

v = st.isdisjoint(st1)
print(v)
v2 = st.isdisjoint(st2)
print(v2)
输出:

True
False



  • issubset:是否是另外集合的子集,’<‘
st = {3, 4, ‘dd‘, ‘bb‘}
st1 = {1, 2, ‘aa‘ }
st2 = {1, 2, ‘aa‘ ,‘bb‘}

v = st.issubset(st1)
print(v)
v2 = st1.issubset(st2)
print(v2)
v3 = st1 < st2
print(v3)
输出:

False
True
True

 

  • issuperset:是否是另外一个集合的父集,‘>‘
st = {3, 4, ‘dd‘, ‘bb‘}
st1 = {1, 2, ‘aa‘ }
st2 = {1, 2, ‘aa‘ ,‘bb‘}

v = st.issubset(st1)
print(v)
v2 = st1.issubset(st2)
print(v2)
v3 = st1 < st2
print(v3)
输出:
True
True


  • symmetric_difference: 两个集合不同的元素
st = {3, 4, ‘dd‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘bb‘}

v = st.symmetric_difference(st2)
print(v)
输出:
{1, 2, 3, 4, ‘dd‘, ‘aa‘}


  • symmetric_difference_update: 更改集合1为两集合不同的元素
st = {3, 4, ‘dd‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘bb‘}

st.symmetric_difference_update(st2)
print(st)
输出:
{1, 2, 3, 4, ‘dd‘, ‘aa‘}


  • union:查看集合所有元素, ‘|‘
st = {3, 4, ‘dd‘, ‘bb‘}
st2 = {1, 2, ‘aa‘ ,‘bb‘}

v = st.union(st2)
v2 = st | st2
print(v)
print(v2)
输出:

{1, 2, 3, 4, ‘aa‘, ‘dd‘, ‘bb‘}
{1, 2, 3, 4, ‘aa‘, ‘dd‘, ‘bb‘}


 

Python3 集合

标签:返回   大括号   而不是   sub   val   car   lin   集合   iss   

原文地址:https://www.cnblogs.com/yujiaershao/p/10001029.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!