python基本数据类型之集合set

集合set

基本数据类型特点(可变:列表,字典   不可变:字符串,数字,元组)

  • 不同的元素组成
  • 无序
  • 集合中的元素必须是不可变类型,加入可变的类型会报错
#!/usr/bin/python3
 
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中不同时存在的元素
DEMO

方法:

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

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

  执行结果

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

  B、clear   清空集合

  C、intersection  交集,相当于&

1
2
3
4
5
6
7
s = {1,7,9}
s1 = {1,9,5}
print(s&s1)
print(s.intersection(s1))
 
{9, 1}
{9, 1}

   D、union  并集,相当于 |

1
2
3
4
s = {1,7,9}
s1 = {1,9,5}
print(s|s1)
print(s.union(s1))<br><br>{1,5,7,9}<br>{1,5,7,9}

  E、difference  差集,相当于-

1
2
3
4
5
6
7
s = {1,7,9}
s1 = {1,9,5}
print(s-s1)
print(s.difference(s1))
 
{7}
{7}

  F、symmetric_difference  交叉补集,相当于^

1
2
3
4
5
6
7
s = {1,7,9}
s1 = {1,9,5}
print(s^s1)
print(s.symmetric_difference(s1))
 
{5, 7}
{5, 7}

  G、difference-update   差集更新

  H、isdisjoint        判断是否有交集

  I、issubset        判断是否为子集

1
2
3
4
5
6
7
s1={1,2}
s2={1,2,3}
print(s1.issubset(s2))
print(s2.issubset(s1))
 
True
False

  J、issuperset       判断是否为父集

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

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

  L、pop,remove,discard  均为删除

1
2
3
4
5
6
7
8
9
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唯一的区别删除不存在不会报错
原文地址:https://www.cnblogs.com/caodneg7/p/10152576.html