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 ...
随机推荐
- 程序员必看 Linux 常用命令(重要)
文件操作命令 find find 用于在指定目录下查找文件或子目录,如果不指定查找目录,则在当前目录下查找 命令格式:find path -option [-print] [ -exec/-ok co ...
- pve节点频繁宕机问题排查
1.时间: 我是大概20220521日上午11:03分收到这个事情开始跟进: 再这之前一直是其他同事在处理,由于最近比较忙,没有安排的事情基本也都没有深入跟进,只是知道个大概. 2.问题现象: q ...
- UML中的各种关系
各种关系 UML中的各种关系一览表 名称 英文名称 符号 描述 实现方法 耦合强度 举例 关键词 备注 依赖 dependency 1.当类与类之间有使用关系时就属于依赖关系:2.依赖不具有" ...
- study Rust-7【使用结构体的demo】
fn main() { let width1 = 30; let height1 = 50; println!( "The area of the rectangle is {} squar ...
- infiniswap用到的技术
infiniswap来自 NSDI'17,其代码主要用到以下技术: configfs(主要) configfs-用户空间控制的内核对象配置 https://www.kernel.org/doc/Doc ...
- PHP获取下个月今天时间
获取php下个月当前时间public static function fq_time($time = ""){ if (!$time) $time = time(); $arr = ...
- sql学习day2——运用case进行有条件的update(续day1)
1.薪水表,如下所示,要求:为下一年调整工资22000以下的员工涨工资10%,24000以上的员工减少10% 思考:如果先update薪水24000以上的员工,假设某工资为24000,24000*(1 ...
- 银河麒麟系统 jenkins docker 部署 自动化打包部署git 项目
Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付/部署(CD),其核心作用在于通过自动化流程提升软件开发和交付的效率与质量 一.环境准备 1. 安装 Docker ...
- 82.9K star!全平台AI助手神器,一键部署轻松搞定!
嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 项目介绍 轻量极速的AI对话平台,支持Web/iOS/Mac/Android多端运行,轻松接 ...
- 最小生成树 & 严格次小生成树
最小生成树 何为最小生成树? 有一类问题:给定一张图,可以删除若干条边,在不改变连通性(一般是全联通)的情况下,权值和最小的方案是什么?没错,这就是最小生成树问题(MST问题).那么基本性质其实连聪明 ...