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 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...
随机推荐
- select简单循环嵌套
访问学生的物理最高成绩,并且打印出来,单个要打印出所有的信息 在添加几个 and 就可以啦. select student.gender,student.sname from student whe ...
- Hadoop2.7.7_HA高可用部署
1. Hadoop的HA机制 前言:正式引入HA机制是从hadoop2.0开始,之前的版本中没有HA机制 1.1. HA的运作机制 (1)hadoop-HA集群运作机制介绍 所谓HA,即高可用(7*2 ...
- Opencv-Python学习笔记(一)
学习和研究计算机视觉,必然绕不开OpenCV. 于是我下载了它的C++源码,用cmake编译遇到一些错误. 然后结合网上一些帖子看源码看了好几天,发现有点不知从何处入手. 于是准备从其python版本 ...
- python字符串的魔法
*首字母大写test="aslf"v=test.capitalize()print(v) *所有字母变成小写test="QWFDE"v=test.casefol ...
- [leetcode]432. All O`one Data Structure全O(1)数据结构
Implement a data structure supporting the following operations: Inc(Key) - Inserts a new key with va ...
- android 6.0+ 动态权限 拒绝不再询问后跳转设置应用详情页面
android 6.0+ 的权限 需要动态申请 这里的权限针对的是 敏感权限: SMS(短信) SEND_SMS RECEIVE_SMS READ_SMS RECEIVE_WAP_PUSH RECEI ...
- php实现仿百度分页
本文主要和大家分享php实现仿百度分页的实例,先来看一下效果图. 基本策略 1, 首先要查询总记录数 2, 设置每页显示的数量并计算总页数 3, 增加一个get传值num代表当前访问的是哪一页,如果没 ...
- 51ak带你看MYSQL5.7源码4:实现SQL黑名单功能
博客迁移至: https://www.dboop.com/ 从事DBA工作多年 MYSQL源码也是头一次接触 尝试记录下自己看MYSQL5.7源码的历程 申明:个人Python编程很溜,但是C++还停 ...
- 分布式一致性的基石---Paxos算法(1)
分布式一致性的基石---Paxos算法(1) Paxos算法是由微软的工程师Lamport提出,Lamport依靠Paxos算法获得图灵奖: Paxos算法旨在解决相互信任的分布式系统中,多个节点能快 ...
- angularJs $templateCache
模板加载后,AngularJS会将它默认缓存到 $templateCache 服务中.在实际生产中,可以提前将模板缓存到一个定义模板的JavaScript文件中,这样就不需要通过XHR来加载模板了 $ ...