python之路(四)-set集合
set集合 set是一个无序且不重复的元素集合
优点:访问速度快,解决重复问题
l1 = [1,2,34,5,6,7,4,3,3,]
s2 = set(l1) #可以以列表元祖等作为参数传进来,set集合会自动转换成元祖并去重
#输出结果:
{1, 2, 34, 4, 5, 6, 7, 3}
各种方法:add,clear,.....等等 add 合并集合
l1 = [1,2,34,5,6,7,4,3,3,]
l2 = [23,3,4,5,100,2,3]
s2 = set(l1) #自动转换并去重
s2.add(67)
print(s2)
cear
l1 = [1,2,34,5,6,7,4,3,3,]
l2 = [23,3,4,5,100,2,3]
s2 = set(l1) #自动转换并去重
s2.add(67)
s2.clear()
print(s2)
copy
l1 = [1,2,34,5,6,7,4,3,3,]
s2 = set(l1) #自动转换并去重
s3 = s2.copy() print(s3) #输出结果:
{1, 2, 34, 4, 5, 6, 7, 3}
difference 求差集
l1 = [1,2,34,5,6,7,4,3,3,]
s1 = set(l1) #自动转换并去重
s2 = set([12,3465,75,32,2])
s3 = s2.difference(s1) #循环s2里的元素跟s1比较,若不存在s1内就会打印
s4 = s1.difference(s2) #循环s1里的元素跟s2比较,若不存在s1内就会打印 print(s3)
print(s4) #输出结果:
{32, 3465, 75, 12}
{1, 34, 3, 4, 5, 6, 7}
difference_update 与difference的区别是它会更新原来的集合
l1 = [1,2,34,5,6,7,4,3,3,]
s1 = set(l1) #自动转换并去重
s2 = set([12,3465,75,32,2])
s2.difference_update(s1)
print(s2) #输出结果:
{32, 3465, 75, 12}
discard 参数为一个字符串或者一个数字,如果该参数在集合内,则删除,若不在,则没有任何操作
#清除的元素不存在,不采取任何操作
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s1.discard('abc')
print(s1)
#输出结果:
{1, 2, 34, 4, 5, 6, 7, 3, 'a', 'ab'} #参数存集合内,则清除该元素
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s1.discard('ab')
print(s1)
#输出结果:
{1, 2, 34, 4, 5, 6, 7, 3, 'a'}
intersection 取两个结合之间的交集
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([1,2,23,3,3,5,2])
s3 = s2.intersection(s1)
print(s3)
#输出结果:
{1, 2, 3, 5}
intersection_update 功能与intersection一样,区别是它会更新原来的集合
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([1,2,23,3,3,5,2])
s2.intersection_update(s1)
print(s2)
#输出结果
{1, 2, 3, 5}
isdisjoint 如果没有交集就返回True,反之则返回False
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([1,2,23,3,3,5,2])
s3 = s2.isdisjoint(s1)
print(s3) #输出结果
False l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([111,222])
s3 = s2.isdisjoint(s1)
print(s3)
#输出结果
True
issubset 是否是子集,是则返回True,否则返回False
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([111,222])
s3 = s2.issubset(s1)
print(s3)
#输出结果:
False
issuperset 是否是父集,是则返回True,否则返回False
l1 = [1,2,34,5,6,7,4,3,3,'a','ab']
s1 = set(l1) #自动转换并去重
s2 = set([111,222])
s3 = s2.issuperset(s1)
print(s3)
#输出结果:
False
pop 随意删除一个元素并返回
l1 = [1,2,34,5,6,7,4,3,3,'a','ab','ds']
s1 = set(l1) #自动转换并去重
s2 = s1.pop(2)
print(s2)
#输出结果
随意的结果
remove 删除一个指定的元素,不返回
l1 = ['a','ab','ds']
s1 = set(l1) #自动转换并去重
s1.remove('a')
print(s1) #输出结果
{'ab', 'ds'}
symmetric_difference 对称差值,指将两个集合合并后再求差集
l1 = ['a','ab','ds']
s1 = set(l1) #自动转换并去重
s2 = set([1,2,3,4,'c','d','a'])
s3 = s1.symmetric_difference(s2)
s4 = s2.symmetric_difference(s1)
print(s3)
print(s4) #两次打印的结果是一样的
{1, 2, 3, 4, 'd', 'c', 'ab', 'ds'}
{1, 2, 3, 4, 'd', 'ds', 'c', 'ab'}
symmetric_difference_update 与symmetric_difference 功能一样,只是它要更新原来的集合
update 更新某个元素
l1 = ['a','ab','ds']
s1 = set(l1) #自动转换并去重
s1.update('cd')
print(s1)
#输出结果:
{'d', 'ab', 'ds', 'a', 'c'}
python之路(四)-set集合的更多相关文章
- Python学习第四天集合
集合定义: 无序排列,可哈希 支持集合关系测试 成员关系测试 in not in 迭代 不支持:索引.元素获取.切片 集合的类型:set(),frozenset() 集合没有特定语法格式,只能通过工厂 ...
- python之路---05 字典 集合
二十.字典 可变数据类型 {key:value}形式 查找效率高 key值必须是不可变的数据类型 1.增删改查 1).增 dic["新key"] = "新v ...
- python之路四
内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...
- Python基础(四)-集合
补充: 数据类型分类: 1.按照数据可变不可变: 可变:列表.字典 不可变:数字.字符串.元组 x={':1} print(id(x)) x.update({':2}) print(x) print( ...
- 【python之路11】集合数据类型(set)
集合数据类型(set):集合是不重复的无需序列 1.集合数据类型的创建 a = {11,22,33} #或 a = set() #创建空集合,不能用a={},这样创建的是字典类型 2.集合转换(将可迭 ...
- python基础(四)集合
[集合特点] 1.天生去重.循环 2 关系测试 -交集,差集,并集,(反向差集,对称差集) list = [1,2,3,4,5,3,6]list_2 =[2,3,5,7,8]list=set(lis ...
- Python之路系列笔记
备注:本套笔记内容来源于互联网,只做学习使用,如有侵权请联系本笔记作者. 资料内容 Python之路(一)——Python 初识 Python之路(二)——基础语法 Python之路(三)——函数 P ...
- Python之路【第十四篇】:AngularJS --暂无内容-待更新
Python之路[第十四篇]:AngularJS --暂无内容-待更新
- Python之路(第五篇) Python基本数据类型集合、格式化、函数
一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
随机推荐
- html入门第二天。
二·1.图片与多媒体:-------------- img标签(重中之重): 网页中的图片展示就是用的img标签实现,img元素相网页中嵌入一幅图形,行内标签,单标签. 基础语句:<img sr ...
- [Solution] 969. Pancake Sorting
Difficulty: Medium Problem Given an array A, we can perform a pancake flip: We choose some positive ...
- My_SQ主键,外键
1.default ;设置默认参数,且不能更改. 2.not null ;传参数时不能为空. 3.unique ;在该列不能value 不能重复. 4.primary key ;设置主键,不能含 ...
- 我们一起踩过的坑----react(antd)(二)
1.antd Upload默认值问题 需求是这样的,后台若没有图片默认值,则只有上传按钮,且只能上传一张图片:若有默认值,则显示默认头像图片, 可删除,删除之后有且只能添加一张图片,没有删除默认图片时 ...
- mysql内容总体回顾
数据类型: 数值类型: 整形 浮点型 字符串: char(定长)\varchar(不定长) char(定长):插入数据或查询数据都快,因为char在磁盘上插入数据时的存储空间是固定的,简单粗暴,直接就 ...
- canel的网络策略
资源: https://docs.projectcalico.org/v3.2/getting-started/kubernetes/installation/flannel 基于pod Egress ...
- LeetCode至 少有 1 位重复的数字
给定正整数 N,返回小于等于 N 且具有至少 1 位重复数字的正整数. 示例 1: 输入:20 输出:1 解释:具有至少 1 位重复数字的正数(<= 20)只有 11 . 示例 2: 输入:10 ...
- SpringBoot集成MyBatis的分页插件 PageHelper
首先说说MyBatis框架的PageHelper插件吧,它是一个非常好用的分页插件,通常我们的项目中如果集成了MyBatis的话,几乎都会用到它,因为分页的业务逻辑说复杂也不复杂,但是有插件我们何乐而 ...
- 观察者模式C#实现实例(一)
1.用例情景 1)定义一个闹钟(目标类),里面我们感兴趣的是时间值times,当times大于9.15时,通知观察者. 2)定义两个观察者,userA,userB,当收到times值时,作出判断,当t ...
- MySQL加入log_bin报错
MySQL中二进制日志功能默认是关闭的,查看各种开启方式后,确定在配置文件中加入如下配置来开启该功能: [root@bogon /]# more /etc/my.cnf [mysqld] datadi ...