搜文章
推荐 原创 视频 Java开发 iOS开发 前端开发 JavaScript开发 Android开发 PHP开发 数据库 开发工具 Python开发 Kotlin开发 Ruby开发 .NET开发 服务器运维 开放平台 架构师 大数据 云计算 人工智能 开发语言 其它开发
Lambda在线 > 我爱学Python > python修行之路(六 集合)

python修行之路(六 集合)

我爱学Python 2017-10-30

因为工作的原因,学习停滞了很久,也落后了很多。真的,学习坚持很重要,我们身边太多的诱惑,任何的困难都可能成为放弃的理由。让自己一直在行走,哪怕步子再小,只要走,就有希望。送给自己,死磕到底。

集合

集合是一个无序的,不重复的数据组合,它的主要作用如下:

  • 去重,把一个列表变成集合,就自动去重了

  • 关系测试,测试两组数据之前的交集、差集、并集等关系

变列表为集合

list_1 = [1,4,5,7,3,6,7,9]
liset_1 = set(list_1)print(list_1,type(list_1))

>>>

[1, 4, 5, 7, 3, 6, 7, 9] <class 'list'>

Process finished with exit cod

交集

list_1 = [1,4,5,7,3,6,7,9]

liset_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])

print(list_1,list_2)

list_1.intersection(list_2)

print( list_1.intersection(list_2))

>>>

[4,6]

并集

list_1 = [1,4,5,7,3,6,7,9]


liset_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])

print(list_1.union(list_2))

>>>

[0,1,2,3,4,5,6,7,66,9,8,22]

差集

list_1 = [1,4,5,7,3,6,7,9]

liset_1 = set(list_1)

list_2 = set([2,6,0,66,22,8,4])

print(list_1.difference(list_2))

>>>

[1,3,5,9,7]

子集

list_1 = [1,4,5,7,3,6,7,9] 
liset_1 = set(list_1) 
list_2 = set([2,6,0,66,22,8,4]) 
print(list_1.issubset(list_2))

>>>

false

父集

list_1 = [1,4,5,7,3,6,7,9]

liset_1 = set(list_1)

set([2,6,0,66,22,8,4])

print(list_1.issuperset(list_2))

>>>

false

对称差集

list_1 = [1,4,5,7,3,6,7,9] 
liset_1 = set(list_1) 
list_2 = set([2,6,0,66,22,8,4]) 
print(list_1.issubset(list_2))

>>>

[0,1,2,66,3,5,7,9,22]

判断是没有交集

print("-----------")

list_3 = set([1,3,7])

list_4 = set([5,6,8])

print(list_3.isdisjoint(list_4))

>>>

true

当然,操作也可以用符号完成:

s = set([3,5,9,10])      #创建一个数值集合

t = set("Hello")         #创建一个唯一字符的集合 

a = t | s          # t 和 s的并集 

b = t & s          # t 和 s的交集 

c = t – s          # 求差集(项在t中,但不在s中) 

d = t ^ s          # 对称差集(项在t或s中,但不会同时出现在二者中) 

基本操作: 

t.add('x')            # 添加一项 

s.update([10,37,42])  # 在s中添加多项 

使用remove()可以删除一项: 

t.remove('H') 

len(s) 

set 的长度 

x in s 

测试 x 是否是 s 的成员 

x not in s 

测试 x 是否不是 s 的成员 

s.issubset(t) 

s <= t 

测试是否 s 中的每一个元素都在 t 中 

s.issuperset(t) 

s >= t 

测试是否 t 中的每一个元素都在 s 中 

s.union(t) 

s | t 

返回一个新的 set 包含 s 和 t 中的每一个元素 

s.intersection(t) 

s & t 

返回一个新的 set 包含 s 和 t 中的公共元素 

s.difference(t) 

s - t 

返回一个新的 set 包含 s 中有但是 t 中没有的元素 

s.symmetric_difference(t) 

s ^ t 

返回一个新的 set 包含 s 和 t 中不重复的元素 

s.copy() 

返回 set “s”的一个浅复制


版权声明:本站内容全部来自于腾讯微信公众号,属第三方自助推荐收录。《python修行之路(六 集合)》的版权归原作者「Python热爱者」所有,文章言论观点不代表Lambda在线的观点, Lambda在线不承担任何法律责任。如需删除可联系QQ:516101458

文章来源: 阅读原文

相关阅读

关注Python热爱者微信公众号

Python热爱者微信公众号:Python-520

Python热爱者

手机扫描上方二维码即可关注Python热爱者微信公众号

Python热爱者最新文章

精品公众号随机推荐

下一篇 >>

Python语法总结