第二天python3 set常用方法
set
set的元素要求
set的元素必须可hash,目前学过的不可hash的类型有list、set;
1、元素不可以被索引
可变的、无序的、不重复的元素的集合
2、set可以被迭代
set增加
add(elem)
增加一个元素到set中,如果元素存在则什么都不做;
update(*others)
合并其他元素到set集合中来;参数others必须是可迭代对象;就地修改;可以写多个可迭代对象;
set删除
remove(elem)
如果set中有删除对象,则删除,如果没有,则抛出keyError;
discard(elem)
元素存在则删除,不存在则什么都不做;
pop()
移除并返回任意元素,因为是无序的,所以是任意元素;
空集合返回KeyError;
clear()
移除所有元素;
set修改、查询
set要么删除要么假如新的元素;
非线性结果,无法被索引,可以迭代所有元素;
成员运算符
通过测试发现,set的处理速度明显比list要高很多;由于set中没有重复数据,则set会通过hash的方式将数据计算出一个唯一hash值;所以处理会比较快;
set和线性结构
线性结构的查询时间复杂度是O(n),即随着数据规模的增大而增加耗时;
set、dict等结构,内部使用hash值作为key,时间复杂度可以做到O(1);查询时间和数据规模无关;
可hash类型
数值型int、float、complex
布尔型True、False
字符串string、bytes
tuple
None
以上都是不可变类型,成为hash类型;
set的元素必须是可hash的;
集合运算
并集
union(*others) 返回和多个集合合并后的新的集合
|运算符重载;等同于union;
update(*others) 和多个集合合并,就地修改;
|= 等同于update
交集
intersection(*others) 返回多个集合的交集
& 等同于intersection
intersection_update(*others) 获取和多个集合的交集,并就地修改;
&= 等同于intersection_update
差集
differece(*others) 返回和多个集合的差集
- 等同于difference
difference_update(*others) 获取和多个集合的差集并就地修改;
-= 等同于difference_update
对称差集
集合A和B,由所有不属于A和B的交集元素组成的集合,记作(A-B)U(B-A)
symmetric_differece(other) 返回和另一个集合的差集
^ 等同于symmetric_differece
symmetric_differece_update(other) 获取和另一个集合的差集并就地修改;
^= 等同于symmetric_differece_update
issubset(other)、<= 判断当前集合是否是另一个集合的子集
set1 < set2 判断set1是不是set2的真子集
issuperset(other)、>= 判断当前集合是否是other的超集
set1 > set2 判断set1是否是set的真超集
isdisjoint(other) 判断当前集合和另一个集合有没有交集,没有交集,返回True;
第二天python3 set常用方法的更多相关文章
- python学习第二天-基本数据类型常用方法
1.直入主题 python中基本的数据类型有 数字(整形,长整形,浮点型,复数) 字符串 字节串:在介绍字符编码时介绍字节bytes类型 列表 元组 字典 集合 下面我们直接将以下面几个点进行学习 # ...
- python3字符串常用方法
整型和布尔值的转换: bin -- 十进制转二进制 int("1101",2) -- 二进制转十进制 十进制转二进制的算法 除2 取余,获取的所有余数从下往上进行计算 二进制转十进 ...
- (六)python3 字符串常用方法
字符串截取 >>>s = 'hello' >>>s[0:3] 'he' >>>s[:] #截取全部字符 'hello' 消除空格及特殊符号 ...
- ubuntu下python3及idle3的安装
一.使用以下命令检查自己的系统下是否有python3 python3 --version 如果出现类似“command not found",则说明你需要安装python3.如果能够出现py ...
- Python3基础-目录
Python3基础-目录(Tips:长期更新Python3目录) 第一章 初识Python3 1.1 Python3基础-前言 1.2 Python3基础-规范 第二章 Python3内置函数&a ...
- (五)Hibernate 操作对象
所有项目导入对应的hibernate的jar包.mysql的jar包和添加每次都需要用到的HibernateUtil.java 第一节:Hibernate 中四种对象状态 临时状态(transient ...
- libgdx学习记录19——图片动态打包PixmapPacker
libgdx中,opengl 1.x要求图片长宽必须为2的整次幂,一般有如下解决方法 1. 将opengl 1.x改为opengl 2.0.(libgdx 1.0版本后不支持1.x,当然不存在这个问题 ...
- Hibernate学习5—Hibernate操作对象2
第二节:Session 常用方法讲解 2)load和get()方法: 数据库中不存在与OID 对应的记录,Load()方法会抛出异常: load方法默认采用延迟加载,load出来的对象是一个代理类.开 ...
- 【转】有的共享软件赚了一百万美元,而为什么你没有?&&我的软件推广成功之路
有的共享软件赚了一百万美元,而为什么你没有? 转自:http://blog.csdn.net/wangjiwei2010/article/details/1267044 译:DreamGoal 原作: ...
随机推荐
- IIS项目部署和发布
VS2019如何把项目部署和发布 这里演示:通过IIS文件publish的方式部署到Windows本地服务器上 第一步(安装IIS) 1.在自己电脑上搜索Windows功能里的[启用或关闭Window ...
- 【mq】从零开始实现 mq-07-负载均衡 load balance
前景回顾 [mq]从零开始实现 mq-01-生产者.消费者启动 [mq]从零开始实现 mq-02-如何实现生产者调用消费者? [mq]从零开始实现 mq-03-引入 broker 中间人 [mq]从零 ...
- 力扣算法:125-验证回文串,131-分割回文串---js
LC 125-验证回文串 给定一个字符串,验证它是否是回文串,只考虑字母和数字字符,可以忽略字母的大小写. 说明:本题中,我们将空字符串定义为有效的回文串. 注:回文串是正着读和反着读都一样的字符串. ...
- 693. Binary Number with Alternating Bits - LeetCode
Question 693. Binary Number with Alternating Bits Solution 思路:输入一个整数,它的二进制01交替出现,遍历其二进制字符串,下一个与上一个不等 ...
- 【系统】查看windows系统是否永久激活
查看windows系统是否永久激活 查看激活时间 slmgr.vbs -xpr 查看激活详情 slmgr.vbs -dlv
- spring 配置文件 --bean
bean标配的基本配置 id:Bean实例在Spring容器中的唯一标识 class Bean的全限定名 scope 1.当scope的 ...
- CF1681F Unique Occurrences
题意:一棵树,问每条路径上只出现一次的值的个数的和. 思路: 显然想到考虑边贡献.每条边权下放到下面的哪个点.\(up_i\)为上面第一个点权等于它的点.我们需要一个子树内点权等于它的点(如果满足祖孙 ...
- Codeforces Round #793 (Div. 2)
C. LIS or Reverse LIS? D. Circular Spanning Tree E. Unordered Swaps F MCMF?
- CF 1015F
题意:[CF 1015F](https://codeforces.com/contest/1015/problem/F) 给你一个模式串A(一个不一定合法的括号序列),让你构造长度为2*n的合法括号序 ...
- 「文化课 · 校园生活」街舞社演出 & 校园十佳歌手决赛
女孩子跳舞很好看(流鼻血),男孩子跳舞很骚,跳的很有感觉.