python基础—集合
一、集合(数字,字符串,元组)
1、定义
由不同元素组成的集合,集合中是一组无序排列的哈希值,可以作为字典的key
2、特性
无序,不同元素组成,必须是不可变类型

3、set输出与去重
s=set('hello')
s >> {'e', 'h', 'l', 'o'}
4、add添加元素
s = {1,2,3,4,"3"}
s.add(5)
s.add(2)
s >> {1, 2, 3, '3', 4, 5}
5、clear清空集合
s = {1,2,3,4,"3"}
s.clear()
s >> set()
6、copy 拷贝元素
s = {1,2,3,4,"3"}
s1 = s.copy()
s >> [1, 2, 3, 4, '3']
s1 >> [1, 2, 3, 4, '3']
id(s) >> 113879880
id(s1) >> 109192584
7、pop随机删除一个元素
s = {1,2,3,4,"3"}
s.pop() >> '3'
s >> [1,2,3,4]
8、 remove, discard 指定删除 集合中的元素
remove 删除不存在元素,会报错。
#使用remove时,如果删除的元素不存在,会报错
s = {1,2,3,4,"3"}
s.remove('sssss')
s >>
ValueError Traceback (most recent call last)
<ipython-input-60-7934dc97039e> in <module>
----> 1 s.remove('ssss')
ValueError: list.remove(x): x not in list
discard 删除不存在元素,不会报错。
#使用discard时,删除不存在元素,不会报错
s = {1,2,3,4,"3"}
s.discard('sssss')
s >>
{1, 2, 3, 4, '3'}
二、集合的交集,并集,差集
1、交集,两个集合相同的部分
intersection
&
p=['lcg','szw','zjw','lcg']
l=['lcg','szw','sb']
p_s=set(p)
l_s=set(l)
p_s >> {'lcg', 'szw', 'zjw'}
l_s >> {'lcg', 'sb', 'szw'} #求交集
p_s&l_s >> {'lcg', 'szw'}
p_s.intersection(l_s) >>
2、并集,两个集合所有的元素合在一起
union
|
p=['lcg','szw','zjw','lcg']
l=['lcg','szw','sb']
p_s=set(p)
l_s=set(l)
p_s|l_s >> {'lcg', 'sb', 'szw', 'zjw'}
p_s.union(l_s) >> {'lcg', 'sb', 'szw', 'zjw'}
3、差集,两个集合中第一个集合中有,第二个集合中没有的元素
difference
—
p=['lcg','szw','zjw','lcg']
l=['lcg','szw','sb']
p_s=set(p)
l_s=set(l)
p_s-l_s >> {'zjw'}
p_s.difference(l_s) >> {'zjw'}
4、交叉补集,两个集合除去相同元素所得到的集合
symmetric_difference
^
p=['lcg','szw','zjw','lcg']
l=['lcg','szw','sb']
p_s=set(p)
l_s=set(l)
p_s^l_s >> {'sb', 'zjw'}
p_s.symmetric_difference(l_s) >> {'sb', 'zjw'}
5、求差集后更新原集合
difference_update
python_l=['lcg','szw','zjw','lcg']
linux_l=['lcg','szw','sb']
p_s=set(python_l)
l_s=set(linux_l) p_s.difference_update(l_s)
p_s >> {'zjw'}
6、判断两集合是否有交集,没有为Ture
isdisjoint
s1={1,2,3}
s2={4,5}
s1.isdisjoint(s2) >> True
7、判断s1是不是s2的子集
issubset
s1={1,2,}
s2={1,2,3}
s1.issubset(s2) >> True
8、判断s1是不是s2的父集
issuperset
s1={1,2,3}
s2={1,2,}
s1.issuperset(s2) >> True
9、更新多个值
update
s1={1,2,3}
s1.update([4,5])
s1 >>
{1, 2, 3, 4, 5}
10、frozenset 不可变集合
元素一经创建,不可增加、删除和修改。因此没有add、pop、discard、remove和所有以_update结尾的方法。但可以作为左值接受赋值。
python基础—集合的更多相关文章
- python学习笔记-(七)python基础--集合、文件操作&函数
本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...
- Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数
1. 集合 1.1 特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...
- python基础 ------ 集合
---恢复内容开始--- ----- 集合 使用场景:网购的订单.与商品ID 一一对应的商品信息 python的内置类型:List Tuple Dictionary ---- 列表 LI ...
- python基础-集合小结
Python-基础-集合小结 集合 简介 声明 常用操作 成员关系 新增删除 集合间操作 其他 补充 集合 简介 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和 ...
- Python学习【day04】- Python基础(集合、函数)
集合 #!/usr/bin/env python # -*- coding:utf8 -*- # set集合 只可放不可变的数据类型,本身是可变数据类型,无序 # s = {1,2,3,[1,2,3] ...
- python基础---集合类型(Sets)
集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个无序 ...
- python 基础 集合
集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 交集 并集 差集 子集 对称差集 list ...
- Python基础——集合(set)
集合可以去除掉列表中重复的元素. 创建 list1=[123,123,456,789] list1=set(list1) list1 set1=set() type(set1) set1=set([1 ...
- python基础-集合set及内置方法
数据类型之集合-set 用途:多用于去重,关系运算 定义方式:通过大括号存储,集合中的每个元素通过逗号分隔.集合内存储的元素必须是不可变的,因此,列表-List 和字典dict 不能存储在集合中 注意 ...
- <Python基础>集合的基本操作
#小知识点:返回对象的内存地址 i,j = 1,2 print(id(i),id(j)) #集合的基本操作, #相当于没有键值对的字典,里面的元素是无序且不重复的 #一般写法 s = set({1,2 ...
随机推荐
- 如何调用CMD实现多个同类文件合并的研究 · 二进制 · 依次 · 文本图像视频音频
引言 视频网站内,使用视频下载嗅探器下载了视频,打开资源管理器一看,是几千个.ts文件,见下图: 通过播放部分视频,发现其实内容是完整的,只是自动切割了多份,倘若无缝拼接为一个完整视频单元,就可以 ...
- [tldr] vscode的remote插件的config文件内容解析
参考VS Code Remote SSH配置 解决了什么问题 vscode的remote插件可以直接通过可视化的UI新建一个连接 通过ssh指令添加服务器的连接方式 但是这种方式添加的服务器名字等于服 ...
- go 结构体多字段多因素排序
前言 有时候我们需要处理一份数据,需要多个字段作为条件,联合进行排序. 代码 package main import ( "fmt" "sort" ) // 数 ...
- Gentoo 使用 Obs进行屏幕分享
Obs-Studio 安装使用 on Hyprland 依赖安装 pipewire wireplumber xdg-desktop-portal-hyprland emerge -aq pipewir ...
- 大型通用电子制造执行系统(MES)
简介: 系统参考西门子MOM智能制造Opcenter工业软件制造执行系统Camstar电子套件人机料法环数据建模业务对象和车间生产执行事务逻辑,采用面向对象分层设计与C#编程开发:包含电子制造企业 ...
- 原生 JS 实现 HTML 转 Markdown ,(html2md.js 或 html2markdown.js)
之前因为一些需要,需要转换部分 HTML 标签成 markdown 格式,但是不知不觉就完善到一个相对完整的函数. 然后我就封装成了一个文件放在了 github ( https://github.co ...
- 微服务架构的守护者:Redisson 分布式锁与看门狗机制实战指南
1. 分布式锁简介 1.1 什么是分布式锁 在单机应用中,可以使用 Java 内置的锁机制(如 synchronized.ReentrantLock 等)来实现线程间的同步.但在分布式环境下,由于应用 ...
- Git的基础使用(一)
Git版本管理工具的作用: (1)完整的记录项目代码变化的过程 (2)备份每一个变化过程的代码版本 (3)多人协同开发 1.配置全局变量 (1)配置用户名 git config --global us ...
- journalctl -u docker 查看日志
转载注明出处: 1. 查看 Docker 服务的最新日志(实时滚动) sudo journalctl -u docker -f -f 参数表示 跟随(follow),会持续输出最新日志(类似 tail ...
- 基于 OT-JSON 与 Immer 设计低代码/富文本场景的状态管理方案
在复杂应用中,例如低代码.富文本编辑器的场景下,数据结构的设计就显得非常重要,这种情况下的状态管理并非是redux.mobx等通用解决方案,而是需要针对具体场景进行定制化设计,那么在这里我们来尝试基于 ...