博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python修行之路(六 集合)
阅读量:6968 次
发布时间:2019-06-27

本文共 2001 字,大约阅读时间需要 6 分钟。

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

集合

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

  • 去重,把一个列表变成集合,就自动去重了
  • 关系测试,测试两组数据之前的交集、差集、并集等关系

 

变列表为集合

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)
list_2 = 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”的一个浅复制

 

转载于:https://www.cnblogs.com/ysw-1990/p/6942565.html

你可能感兴趣的文章
springmvc+mybatis+dubbo分布式平台-maven构建根项目
查看>>
一个小常识
查看>>
Nginx防盗链 Nginx访问控制 Nginx解析php相关配置 Nginx代理
查看>>
解决虚拟机中使用ntpdate报错:ntpdate[46700]: no server suitab
查看>>
Docker 快速删除所有容器
查看>>
【OCP认证12c题库】CUUG 071题库考试原题及答案(27)
查看>>
OSS支持IPV6/IPV4双栈访问域名
查看>>
阿里云应用实时监控 ARMS 再升级,支持 Prometheus 开源生态
查看>>
最全面的IGMP协议总结!
查看>>
你还在 Select * 吗?
查看>>
机器学习能革了数据库索引的命吗?
查看>>
把PDF转成PPT的免费工具
查看>>
多线程 NSCondition线程同步(消费者等待工厂制作完成,工厂发消息)
查看>>
python 冒泡排序加入判断
查看>>
WEB+NFS+DNS的搭建
查看>>
SQL Server2008导出数据生成文件
查看>>
Symfony2出现加载WEB调试工具栏错误
查看>>
PHP中文件下载
查看>>
吐槽!吐槽!
查看>>
shell 信号捕捉处理
查看>>