python基本数据类型之集合(day7)

set的基本功能:

1、定义:由不同元素组成的集合,集合中是一组无序排列的可hash值,可以作为字典的key。

2、特性:集合的目的是将不同的值存放到一起,不同的集合间用来做关系运算,无需纠结于集合中单个值。集合去重性(删除集合内相同的值)

3、结构:以{}为语法,包括元素且元素以逗号分隔。元素无序排列,且元素必须得是不可变类型(字符串,数字,元组)否则会报错。

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中不同时存在的元素

>>>{'r', 'd', 'b', 'a', 'c'}
>>>{'b', 'r', 'd'}
>>>{'l', 'r', 'z', 'd', 'b', 'a', 'c', 'm'}
>>>{'c', 'a'}
>>>{'l', 'b', 'r', 'z', 'd', 'm'}

set的方法:

重点掌握:add、intersection交集、union并集、difference差集、symmetric_difference交叉补集

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

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

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

clear   清空集合

intersection  交集,相当于&

s = {1,7,9}
s1 = {1,9,5}
print(s&s1)
print(s.intersection(s1))
 
>>>{9, 1}
>>>{9, 1}

union  并集,相当于 |

s = {1,7,9}
s1 = {1,9,5}
print(s|s1)
print(s.union(s1))
>>>{1,5,7,9}
>>>{1,5,7,9}

difference  差集,相当于-

s = {1,7,9}
s1 = {1,9,5}
print(s-s1)
print(s.difference(s1))
 
>>>{7}
>>>{7}

symmetric_difference  交叉补集,相当于^

s = {1,7,9}
s1 = {1,9,5}
print(s^s1)
print(s.symmetric_difference(s1))
 
>>>{5, 7}
>>>{5, 7}

difference-update   差集更新

isdisjoint        判断是否有交集

s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
print(s2.issubset(s1))
 
>>>True
>>>False

issubset        判断是否为子集

issuperset       判断是否为父集

s1={1,2}
s2={1,2,3}
print(s2.issuperset(s1))
 
>>>True

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

pop,remove,discard  均为删除

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唯一的区别删除不存在不会报错

 

posted @ 2019-05-26 10:51  大黑仔  阅读(200)  评论(0编辑  收藏  举报