集合类型的内置方法

集合类型的内置方法

  • 1.用途

​ 用于关系运算的集合体,集合内的元素无序且不可以重复,因此集合可以去重,但是去重之后会打乱元素原来的顺序

  • 2.定义

​ {}内用逗号分隔每个元素,每个元素必须是不可变类型,定义空集合用set()

s = {1, 2, 1, 'a'}  # s = set({1,2,'a'})
print(s)            #{1,2,'a'}
  • 3.常用操作和内置方法

​ 1.长度len

​ 2.成员运算 in 和not in

​ 3.并集:两个集合合并起来并去除重复项重,用| 或 union ()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}

print(pythoners|linuxers)   
print(pythoners.union(linuxers))

#{'jason', 'kevin', 'sean', 'tank', 'nick', 'egon'}
#{'jason', 'kevin', 'sean', 'tank', 'nick', 'egon'}

​ 4.交集:取两个集合中相同的元素 用&或者intersection()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}

#{'nick'}
#{'nick'}

​ 5.差集:取一个集合中有另一个集合中没有的元素,用 - 或者difference()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
#pythoner中有的linuxers中没有的
print(pythoners-linuxers)               #{'jason', 'sean', 'tank'}
print(pythoners.difference(linuxers))   #{'jason', 'sean', 'tank'}

#linuxers中有的pythoner中没有的
print(linuxers-pythoners)               #{'egon', 'kevin'}
print(linuxers.difference(pythoners))   #{'egon', 'kevin'}

​ 6.对称差集:取两个集合中对方没有的元素的集合 用^或者symmetric_difference()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}

print(pythoners^linuxers)
print(pythoners.symmetric_difference(linuxers))

#{'kevin', 'sean', 'tank', 'jason', 'egon'}
#{'kevin', 'sean', 'tank', 'jason', 'egon'}

​ 7.==判断两个集合是否相等,返回True或者False

​ 8.父级:判断一个集合是否是另一个集合的父级 用 >,>=或者issuperset()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
javaers = {'jason', 'nick'}

print(pythoners>linuxers)               #False
print(pythoners>=linuxers)              #False
print(pythoners>=javaers)               #True
print(pythoners.issuperset(javaers))    #True

​ 9.子集:判断一个集合是否是另一个集合的子集用<,<=或者issubset()

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
javaers = {'jason', 'nick'}

print(pythoners<linuxers)               #False
print(pythoners<=linuxers)              #False
print(javaers.issubset(pythoners))      #True

​ 10.add,集合增加元素

s={1,2,3,'a'}
s.add('b')
print(s)
#{1, 2, 3, 'b', 'a'}

​ 11.remove() 移除元素,指定元素不存在会报错

s = {1, 2, 'a'}
s.remove(1)

print(s)    #{2,'a'}

​ 12.diacard() 也是移除元素,若指定元素不存在也不会报错

​ 13.difference_update(),a.difference_update(b)表示移除集合a中ab两个集合中共同存在的元素,得到一个新的集合a

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
pythoners.difference_update(linuxers)
print(pythoners)
print(linuxers)

#{'sean', 'jason', 'tank'}
#{'nick', 'kevin', 'egon'}

​ 14.isdisjoint(),集合没有共同的部分返回True,否则返回False

pythoners = {'jason', 'nick', 'tank', 'sean'}
linuxers = {'nick', 'egon', 'kevin'}
print(pythoners.isdisjoint(linuxers))       #False  
  • 4.存一个值或多个值

​ 多个值,且为不可变类型

  • 5.有序或无序

​ 无序

  • 6.可变或不可变

​ 集合是可变数据类型

转载于:https://www.cnblogs.com/zhaogang0104/p/10922811.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值