一、集合(数字,字符串,元组)

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基础—集合的更多相关文章

  1. python学习笔记-(七)python基础--集合、文件操作&函数

    本节内容 1.集合操作 2.文件操作 3.字符编码与转码 4.函数操作 1.集合操作 集合是一个无序的.不重复的数据组合: 1.1 常用操作 它的作用是: 1)自动去重:列表变成集合,自动去重: &g ...

  2. Python自动化 【第三篇】:Python基础-集合、文件操作、字符编码与转码、函数

    1.        集合 1.1      特性 集合是一个无序的,不重复的数据组合,主要作用如下: 去重,把一个列表变成集合实现自动去重. set可以看成数学意义上的无序和无重复元素的集合,因此,两 ...

  3. python基础 ------ 集合

    ---恢复内容开始--- -----   集合 使用场景:网购的订单.与商品ID 一一对应的商品信息 python的内置类型:List  Tuple  Dictionary ----  列表   LI ...

  4. python基础-集合小结

    Python-基础-集合小结 集合 简介 声明 常用操作 成员关系 新增删除 集合间操作 其他 补充 集合 简介 python的set和其他语言类似, 是一个无序不重复元素集, 基本功能包括关系测试和 ...

  5. Python学习【day04】- Python基础(集合、函数)

    集合 #!/usr/bin/env python # -*- coding:utf8 -*- # set集合 只可放不可变的数据类型,本身是可变数据类型,无序 # s = {1,2,3,[1,2,3] ...

  6. python基础---集合类型(Sets)

    集合类型(Sets) 集合对象是不同的(不可重复)hashable对象的无序集合.常见用法包括:成员关系测试.移除序列中的重复.以及科学计算,例如交集.并集.差分和对称差分.通俗点来说,集合是一个无序 ...

  7. python 基础 集合

    集合 集合是一个无序的,不重复的数据组合,它的主要作用如下: 去重,把一个列表变成集合,就自动去重了 关系测试,测试两组数据之前的交集.差集.并集等关系 交集 并集 差集 子集  对称差集 list ...

  8. Python基础——集合(set)

    集合可以去除掉列表中重复的元素. 创建 list1=[123,123,456,789] list1=set(list1) list1 set1=set() type(set1) set1=set([1 ...

  9. python基础-集合set及内置方法

    数据类型之集合-set 用途:多用于去重,关系运算 定义方式:通过大括号存储,集合中的每个元素通过逗号分隔.集合内存储的元素必须是不可变的,因此,列表-List 和字典dict 不能存储在集合中 注意 ...

  10. <Python基础>集合的基本操作

    #小知识点:返回对象的内存地址 i,j = 1,2 print(id(i),id(j)) #集合的基本操作, #相当于没有键值对的字典,里面的元素是无序且不重复的 #一般写法 s = set({1,2 ...

随机推荐

  1. 程序员必看 Linux 常用命令(重要)

    文件操作命令 find find 用于在指定目录下查找文件或子目录,如果不指定查找目录,则在当前目录下查找 命令格式:find path -option [-print] [ -exec/-ok co ...

  2. pve节点频繁宕机问题排查

    1.时间: 我是大概20220521日上午11:03分收到这个事情开始跟进: 再这之前一直是其他同事在处理,由于最近比较忙,没有安排的事情基本也都没有深入跟进,只是知道个大概. 2.问题现象: ​ q ...

  3. UML中的各种关系

    各种关系 UML中的各种关系一览表 名称 英文名称 符号 描述 实现方法 耦合强度 举例 关键词 备注 依赖 dependency 1.当类与类之间有使用关系时就属于依赖关系:2.依赖不具有" ...

  4. study Rust-7【使用结构体的demo】

    fn main() { let width1 = 30; let height1 = 50; println!( "The area of the rectangle is {} squar ...

  5. infiniswap用到的技术

    infiniswap来自 NSDI'17,其代码主要用到以下技术: configfs(主要) configfs-用户空间控制的内核对象配置 https://www.kernel.org/doc/Doc ...

  6. PHP获取下个月今天时间

    获取php下个月当前时间public static function fq_time($time = ""){ if (!$time) $time = time(); $arr = ...

  7. sql学习day2——运用case进行有条件的update(续day1)

    1.薪水表,如下所示,要求:为下一年调整工资22000以下的员工涨工资10%,24000以上的员工减少10% 思考:如果先update薪水24000以上的员工,假设某工资为24000,24000*(1 ...

  8. 银河麒麟系统 jenkins docker 部署 自动化打包部署git 项目

    Jenkins 是一个开源的自动化服务器,主要用于实现 持续集成(CI) 和 持续交付/部署(CD),其核心作用在于通过自动化流程提升软件开发和交付的效率与质量 一.环境准备 1. 安装 Docker ...

  9. 82.9K star!全平台AI助手神器,一键部署轻松搞定!

    嗨,大家好,我是小华同学,关注我们获得"最新.最全.最优质"开源项目和高效工作学习方法 项目介绍 轻量极速的AI对话平台,支持Web/iOS/Mac/Android多端运行,轻松接 ...

  10. 最小生成树 & 严格次小生成树

    最小生成树 何为最小生成树? 有一类问题:给定一张图,可以删除若干条边,在不改变连通性(一般是全联通)的情况下,权值和最小的方案是什么?没错,这就是最小生成树问题(MST问题).那么基本性质其实连聪明 ...