集合

定义:

在{}内用逗号分隔开多个元素,多个元素满足以下三个条件

1.集合内元素必须为不可变类型

2.集合内元素无序

3‘集合内元素没有重复

s={1,2} 

s={1,[1,2]} 
print(s)  #会报错,集合内元素必须为不可变类型

s={1,'a','z','b',4,7} # 集合内元素无序
s={1,1,1,1,1,1,'a','b'} # 集合内元素没有重复
print(s)
>>>
{1,'a','b'}
# s={} # 默认是空字典
# print(type(s))
# 定义空集合
# s=set()
# print(s,type(s))

s={} # 默认是空字典

定义空集合

s=set() #调用set功能

print(s)

s={} #此时才是空集合

类型转换

a=set([1,2,3])  #列表也可以转换
print(a)
>>>
{1,2,3}
res=set('hellolllll')    #集合会把多余重复的自动清除
print(res)
>>>
{'h', 'o', 'e', 'l'}   #集合是无序的

关系运算符

取交集: 符号: $

两个集合共同拥有的元素

a = {"zero","kevin","jason","egon"}
b = {"Jy","ricky","jason","egon"}
res=a & b  #集合内没有顺序,a在前或者在后没有影响
print(res)
>>>
{'egon', 'jason'}

intersection   #跟符号$一个意思
print(a.intersection(b))
>>>
{'egon', 'jason'}

取并集或者叫取合集: 符号:|

去掉重复的,两个集合所有的元素合并到一起,

a = {"zero","kevin","jason","egon"}
b = {"Jy","ricky","jason","egon"}
print(a | b)    #集合内没有顺序,a在前或者在后没有影响
>>>
{'kevin', 'jason', 'egon', 'zero', 'ricky', 'Jy'}

union    #跟符号|一个意思
print(a.union(b))
>>>
{'kevin', 'jason', 'egon', 'zero', 'ricky', 'Jy'}

取差集:

两个集合独有的元素

a = {"zero","kevin","jason","egon"}
b = {"Jy","ricky","jason","egon"}
print(a - b)   ##求的是a的独有元素,此时有顺序了,谁在前面就是求谁独有的元素
>>>
{'zero','kevin'}

print(b - a)    ##求的是b的独有元素,此时有顺序了,谁在前面就是求谁独有的元素
>>>
{'ty','rick'}

difference():跟上面的意思一样
print(a.difference(b))
>>>
{'ty','rick'}

对称差集: 符号:^

把两个集合独有的元素合并到一起(即去掉共有的元素)

a = {"zero","kevin","jason","egon"}
b = {"Jy","ricky","jason","egon"}
print(a ^ b)
>>>
{'kevin', 'ricky', 'zero', 'Jy'}

symmetric_difference:意思跟上面一样
print(a.symmetric_difference(b))
>>>
{'kevin', 'ricky', 'zero', 'Jy'}

父子集

包含的关系

s1 = {1,2,3}
s2 = {1,2,4}
print(s1 > s2)   #不存在包含关系,进行比较均为Fales
s1 = {1,2,3}
s2 = {1,2,}
print(s1 >= s2)  #当s1大于等于s2时,才能说是s1是s2他“爹”
>>>
True
s1 = {1,2,}
s2 = {1,2,}
print(s1 == s2)  #s1与s2互为父子
>>>
True
posted on 2020-03-15 18:30  淡然的沐子  阅读(88)  评论(0编辑  收藏  举报