博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Python3基础-集合
阅读量:6771 次
发布时间:2019-06-26

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

hot3.png

定义

1.由不同元素组成

2.无序排列的的可hash值,可以作为字典的key

3.不可变类型

定义集合示例

a = {1,1,2,2,3,4,5,6,7,8,9}print(a)
{1, 2, 3, 4, 5, 6, 7, 8, 9}

a = set('123456789')print(a)
{'3', '4', '7', '5', '6', '8', '9', '1', '2'}

转换为集合

li = [1,2,3,4,5,6]v = set(li)print(v)
{1, 2, 3, 4, 5, 6}

不可变集合

a = frozenset('1''2''3')print(a)
frozenset({'3', '1', '2'})

可变集合方法

添加更新拷贝

add()

添加集合元素,一次只能更新一个值

a = {1,2,3}a.add(4)print(a)
{1, 2, 3, 4}

update()

集合更新,一次可以更新多个值

a = {1,2,3}b = {4,5,6}v = a.update(b)print(v)print(a)
None{1, 2, 3, 4, 5, 6}

copy()

集合复制

a = {1,2,3}v = a.copy()print(a)print(v)
{1, 2, 3}{1, 2, 3}

删除/移除/清除

clear()

清除集合内容

a = {1,2,3}a.clear()print(a)
set()

pop()

随机删除一个元素

a = set("1""2""3""4""5")a.pop()print(a)
{'1', '4', '5', '2'}

remove()

指定元素移除,不存在报错

a = set("1""2""3""4""5")a.remove('4')print(a)
{'1', '3', '5', '2'}

discard()

指定元素移除,不存在返回原集合

a = set("1""2""3""4""5")a.discard('8')print(a)
{'3', '2', '4', '1', '5'}

集合关系运算

intersection()

交集

intersection()方法可以用"&"或"and"符号代表,如:print(a&b)

a = set('1''2''3''4''5''6''7''8''9')b = set('1''3''5''7''9')v = a.intersection(b)# v = a & b# v = a and bprint(v)
{'3', '5', '1', '9', '7'}

union()

并集

union()方法可以用"|"或"or"符号代表,如:print(a|b)

a = set('1''2''3''4''5''6''7''8''9')b = set('1''3''5''7''9')v = a.union(b)# v = a | b# v = a or bprint(v)
{'7', '1', '2', '3', '5', '8', '4', '9', '6'}

difference()

差集

difference()方法可以用"-"符号代表,如:print(a-b)

a = set('1''2''3''4''5''6''7''8''9')b = set('1''3''5''7''9')v = a.difference(b)# v = a - bprint(v)
{'4', '8', '6', '2'}

symmetric_difference()

交叉补集,将两个集合不重合部分进行并集

symmetric_difference()方法可以用"^"符号代表,如:print(a^b)

a = set('2''3''4''5''6''7''8')b = set('1''3''5''7''9')v = a.symmetric_difference(b)# v = a ^ bprint(v)
{'2', '6', '4', '1', '9', '8'}

intersection_update()

注:集合关系运算后跟_update说明直接赋值给首选集

a = set('1''2''3''4''5')b = set('3''4''5''6''7')v = a.intersection_update(b)print(v)print(a)
None{'5', '3', '4'}

issuperset()

超集(父集)判断

issuperset()方法可以用">"来表示和判断

a = set('1''2''3''4''5''6''7''8''9')b = set('1''3''5''7''9')v = a.issuperset(b)# v = a > bprint(v)
True

issubset()

子集判断

issubset()方法可以用"<"来表示和判断

a = set('1''2''3''4''5''6''7''8''9')b = set('1''3''5''7''9')v = a.issubset(b)# z = a < bprint(v)
False

转载于:https://my.oschina.net/zhaojunhui/blog/1648048

你可能感兴趣的文章
Vue 响应式核心 observer 源码详解 + 实践
查看>>
Linux下Rust环境配置
查看>>
使用CI、headless Browser、mocha对前端代码进行测试
查看>>
Promise学习笔记
查看>>
Gulp脚本
查看>>
30天自制操作系统-3
查看>>
[CSS]CSS Position 详解
查看>>
持续集成(一):maven私服搭建
查看>>
zabbix监控tomcat多实例(自动发现,主动模式)
查看>>
RecyclerView的刷新分页
查看>>
Spring Boot入门(4)提交表单并存入MySQL数据库
查看>>
用 webpack 和 Parcel 分别搭建第一个 ReactApp
查看>>
springCloud Finchley 微服务架构从入门到精通【四】服务消费者(feign)
查看>>
[转]Openfire后台getshell(编译好的插件)
查看>>
手拉手,用Vue开发动态刷新Echarts组件
查看>>
对原型链和原型以及构造函数的验证
查看>>
ionic2手写制作video的控制栏,app
查看>>
Chapter9 Java面向对象
查看>>
wx.saveFile 填下微信小程序的小坑
查看>>
Python从概念上先了解爬虫
查看>>