python 集合常用操作
集合的特性
无序、不重复、可迭代
常用api
- 创建一个集合
需要显式地使用set()方法来声明,如果使用字面量{}来声明解析器会认为这是一个字典。 - add()
往集合中添加一个元素
demo = set()
demo.add(1)
>>>
{1}
- 移除一个元素
demo.remove(1)
demo
>>>
set()
使用remove移除一个不存在的元素会抛出异常,使用以下方法则不会
demo.discard(1)
# 移除一个不存在的元素时,不会抛出异常 意味着并不知晓是否移除成功
特殊API
- 求交集
s1 = {1, 3, 10, 2}
s2 = {2, 3}
s1 & s2
>>>
{2, 3}
- 求并集
s1 | s2
>>>
{1, 2, 3, 10}
- 求差集 父-子原则 s1中包含了s2
s1 - s2
>>>
{1, 10}
# 如果s2 - s1 返回空集合 因为s2并不包含s1的任何元素
s2 - s1
>>>
set()
- 对称差集 返回不在s1和s2中的元素
有点拗口,可以简单理解为交集的取反
s1 ^ s2
>>>
{1, 10}
其他场景下的运用
- 判断某个序列是否包含多个指定对象
如,判断列表d = ['s', 't', 'a', 'r', 't']中是否包含字符a和r,最常见的方式是来两个if判断,其实,也可以使用集合来完成:
d = ['s', 't', 'a', 'r', 't']
s = {'t', 'r'}
set(d) >= s # 列表d有s的元素
>>>
True
由此及彼,我们有可以借助集合来判断字典的key中是否包含多个指定key。
d = {
'name': 'mk',
'age': 20,
'job': None
}
d.keys() >= {'name', 'age'} # 字典d的keys中包含了集合的元素
>>>
True
当然,我们也可以更换比较运算符,如==或者<=,基本上可以断定,运算符两边的对象是可以调换的,无非是A是否包含B的逻辑判断。
注意
使用set声明集合时,传入的对象是一个可迭代对象,如:
set(['a', 'b'])
这个时候需要注意的是,如果要保存一个字符串到集合中,万不可使用:
set('字符串')
这样的方式,该方法会将字符串遍历逐个添加到集合中,导致最后的结果是{'字', '符', '串'}而非预期的{'字符串'},要达到预期,可使用:
set(['字符串'])
set().add('字符串')
python 集合常用操作的更多相关文章
- python 集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- Python—集合的操作、文件的操作
1.集合的操作 2.文件的操作 1.集合的操作 定义: 1.不同元素组成,自动去重 2.无序 3.集合中的元素必须是不可变类型 1.集合的定义: >>> s1 = set('abcd ...
- python集合相关操作
集合相关操作 集合是一个无序的,不重复的数据组合,它有着两个主要作用:去重以及关系测试. 去重指的是当把一个列表变成了集合,其中重复的内容就自动的被去掉了 关系测试指的是,测试两组数据之间的交集.差集 ...
- python anaconda 常用操作;conda 命令指南
在使用 python anaconda时,经常会用到很多常用操作,记录下来,方便以后更好地使用: conda: Conda既是一个包管理器又是一个环境管理器.你肯定知道包管理器,它可以帮你发现和查看包 ...
- Python中set集合常用操作
功能 Python符号 Python方法 备注 交集 & intersection, intersection_update &:取两者交集>>> set3 = se ...
- java集合常用操作
收集一些常用集合操作的代码,用于治疗健忘症,:) set转list //构造Map数据 Map<String, String> map = new HashMap<String, S ...
- 【Selenium2+Python】常用操作
Webdriver中比较常用的操作元素的方法: clear() 清除输入框的默认内容 send_keys("xxx") 在一个输入框里输入xx内容 ——如果输入中文,则 ...
- python 列表常用操作(二)
1.tuple 的 unpack a,b = t 2.格式化输出 print('您的输入:{},值为{}',format(a,b)) 3.日期计算 import datetime as dt impo ...
- python memcache 常用操作
add() 添加一条键值对,如果key已存在,重复执行add操作会报异常 mc.add('name2', 'lisi') print(mc.get('name2')) # lisi replace 修 ...
- Python Redis常用操作(持续更新)
目录 1.Redis简介 2.Redis部署 3.Redis API应用 4.String操作 1.Redis简介 redis是业界主流的key-value,nosql数据库之一.和Memcached ...
随机推荐
- Windows活动目录_初识
计算机组织形式 工作组(用户本地登录时构造SID进行权限分配): 域(统一身份验证与管理) 域注意事项 实体:域控.域用户.加入域的机子. 依赖的服务:netlogon服务 强制刷新组策略gpupda ...
- 经典排序算法之-----选择排序(Java实现)
其他的经典排序算法链接地址:https://blog.csdn.net/weixin_43304253/article/details/121209905 选择排序思想: 思路: 1.从整个数据中挑选 ...
- 十一、Pod的健康检查-探针
Pod 的健康检查-探针 一.Pod 的健康检查-探针 1.1.探针基本概念 探针是由 kubelet 对容器执行的定期诊断.要执行诊断,kubelet 调用由容器实现的 Handler 有三种类型 ...
- java学习之爬虫
0x00前言 对比与Python的爬虫机制和java的爬虫机制来详解一下java的爬虫,对于一般性的需求无论java还是python都可以胜任. 如需要模拟登陆.对抗防采集选择python更方便些,如 ...
- windows查看端口和杀掉端口
//执行下面命令 netstat --help 获取netstat的所有命令参数 //例如查看8080端口占用 netstat -ano | findstr 8080 //查看该端口是什么 taskl ...
- SpringBoot怎么自定义一个Starter ?
小伙伴们曾经可能都经历过整天写着CURD的业务,都没写过一些组件相关的东西,这篇文章记录一下SpringBoot如何自定义一个Starter. 原理和理论就不用多说了,可以在网上找到很多关于该方面的资 ...
- Spring Cloud Alibaba 从入门到精通(2023)
Alibaba Cloud 简介 Spring Cloud Alibaba 即 Alibaba Cloud ,基于 Spring Cloud 构建,同时封装了阿里巴巴的 Nacos.Sentinel ...
- pytest文档82 - 用例收集钩子 pytest_collect_file 的使用
前言 pytest 提供了一个收集用例的钩子,在用例收集阶段,默认会查找test_*.py 文件或者 *_test.py文件. 如果我们想运行一个非python的文件,比如用yaml 文件写用例,那么 ...
- Go实现常用软件设计模式一:单例模式
目录: 举个栗子 概念介绍 使用场景 1.举个栗子 类图 plantuml ``` @startuml'https://plantuml.com/class-diagramclass Elephant ...
- Go语言核心36讲41
你好,我是郝林,今天我们继续分享bytes包与字节串操作的相关内容. 在上一篇文章中,我们分享了bytes.Buffer中已读计数的大致功用,并围绕着这个问题做了解析,下面我们来进行相关的知识扩展. ...