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 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
随机推荐
- regex正则表达式学习
正则表达式 动机1. 处理文本成为计算机常见工作之一2. 对文本内容的搜索提取是一项比较复杂困难的工作3. 为了快速方便处理上述问题,正则表达式技术诞生,主键发展为一个被众多语言使用的独立技术 定义: ...
- List和符号分隔的字符串互相转换
一.将逗号分隔的字符串转换成List: 1. 使用JDK的Arrays类: import java.util.Arrays; import java.util.List; public class T ...
- git pre-push hook
This article introduces git pre-push hook. Problem In Lean project, we use a modified version of Goo ...
- 4k/1k边界问题
AXI总线,burst操作,不能跨4K边界问题! 在Master_A设计中,假如Master_A只操作一块64M SDRAM(此Master_A不操作任何其他Slave),读写的数据量远远大于4K.因 ...
- CP IPS功能测试
测试环境:CP 15000硬件 测试拓扑: Step1:重新安装Check_Point_R80.10_T479_Gaia并且打补丁 Step2:初始化CP并且部署模式为Management和Gatew ...
- pm2管理node
一般直接npm start起的退出命令行就没了,node后台管理工具pm2目前比较流行. npm install -g pm2 pm2 list pm2 start bin/www --name de ...
- 【收藏】ETH以太坊各个环境的公共的RPC服务!!!
Choose a Network Use one of these endpoints as your Ethereum client provider or IPFS endpoint. NOTE: ...
- 1.为什么使用spring boot
最近2年spring cloud微服务比较流行,Spring Cloud基于SpringBoot,为微服务体系开发中的架构问题提供了一整套的解决方案, 本文总结一下为什么要使用Spring boot, ...
- [Presto]Presto章1 Presto 咋用
Presto 的平均查询性能是 Hive 的 10 倍! 由于 Presto 的数据源具有完全解耦.高性能,以及对 ANSI SQL 的支持等特性,使得 Presto 在 ETL.实时数据计算. Ad ...
- OO第一单元三次作业总结
写在前面 第一单元作业是针对输入的多项式进行格式合法判断,然后进行求导,结果长度优化,最后输出.三次难度递增,不断添加新的需求,总体感觉在实现方面没有多大困难(?),个人主要困扰环节是寻找自己未知bu ...