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

  1. Python学习第四天集合

    集合定义: 无序排列,可哈希 支持集合关系测试 成员关系测试 in not in 迭代 不支持:索引.元素获取.切片 集合的类型:set(),frozenset() 集合没有特定语法格式,只能通过工厂 ...

  2. python之路---05 字典 集合

    二十.字典 可变数据类型 {key:value}形式   查找效率高   key值必须是不可变的数据类型 1.增删改查 1).增    dic["新key"] = "新v ...

  3. python之路四

    内建函数 内建函数详解: 1. abs(x) abs()函数返回数字(可为普通型.长整型或浮点型)的绝对值.如果给出复数,返回值就是该复数的模.例如: >>>print abs(-2 ...

  4. Python基础(四)-集合

    补充: 数据类型分类: 1.按照数据可变不可变: 可变:列表.字典 不可变:数字.字符串.元组 x={':1} print(id(x)) x.update({':2}) print(x) print( ...

  5. 【python之路11】集合数据类型(set)

    集合数据类型(set):集合是不重复的无需序列 1.集合数据类型的创建 a = {11,22,33} #或 a = set() #创建空集合,不能用a={},这样创建的是字典类型 2.集合转换(将可迭 ...

  6. python基础(四)集合

    [集合特点]  1.天生去重.循环 2 关系测试 -交集,差集,并集,(反向差集,对称差集) list = [1,2,3,4,5,3,6]list_2 =[2,3,5,7,8]list=set(lis ...

  7. Python之路系列笔记

    备注:本套笔记内容来源于互联网,只做学习使用,如有侵权请联系本笔记作者. 资料内容 Python之路(一)——Python 初识 Python之路(二)——基础语法 Python之路(三)——函数 P ...

  8. Python之路【第十四篇】:AngularJS --暂无内容-待更新

    Python之路[第十四篇]:AngularJS --暂无内容-待更新

  9. Python之路(第五篇) Python基本数据类型集合、格式化、函数

    一.变量总结 1.1 变量定义 记录某种状态或者数值,并用某个名称代表这个数值或状态. 1.2 变量在内存中的表现形式 Python 中一切皆为对象,数字是对象,列表是对象,函数也是对象,任何东西都是 ...

随机推荐

  1. 有关Linux ipv6模块加载失败的问题

    有关Linux ipv6模块加载失败的问题 同事一个SUSE11sp3环境配置ipv6地址失败,提示不支持IPv6,请求帮助,第一反应是应该ipv6相关内核模块没有加载.     主要检查内容:   ...

  2. 云笔记项目-Spring事务学习-传播SUPPORTS

    接下来测试事务传播属性SUPPORTS Service层 Service层将方法的事务传播属性设置为SUPPORTS LayerT层代码 package LayerT; import javax.an ...

  3. day49 定位布局和过渡动画

    复习 1.盒子在父级水平居中 margin: 0 auto; 2.文本样式操作 color: red; text-align: center; font: 900 30px/200px "S ...

  4. spring mvc 映射与适配器

    在深入学习Spring mvc 过程中,我们需要了解如下两个类: org.springframework.web.servlet.mvc.method.annotation.RequestMappin ...

  5. Gulp入门及简单使用

    前言 什么是gulp?gulp有什么用?为什么用gulp? gulp是前端开发的一种构建工具. 构建工具可以帮助我们工程化地开发项目,比如搭建本地服务器.编译CSS预处理器.保存文件后自动刷新浏览器而 ...

  6. centos7下编译安装php7.3

    一.下载php7.3的源码 https://www.php.net/downloads.php 下载php-7.3.4.tar.gz 二.安装gcc,gcc-c++,kernel-devel yum ...

  7. typescript如何判断实例是否实现了接口?

    ·不能用instanceof,因为运行时不存在Interface ·TS 中判断是否实现接口的核心原则是基于结构而不是基于名称的.即鸭子类型判断. ·实现: interface A{ discrimi ...

  8. 201771010134杨其菊《面向对象程序设计java》第十周学习总结

    第8章泛型程序设计学习总结 第一部分:理论知识 主要内容:   什么是泛型程序设计                   泛型类的声明及实例化的方法               泛型方法的定义      ...

  9. linux学习第十三天 (Linux就该这么学)找到一本不错的Linux电子书

    今天主要讲了vftp 服务的配置,不家三种访问方式   一,匿名访问模式  二,本地访问模式   三,虚拟用户模式  和,tftp简单文件传输协议 也讲了要孝试的服务,sabma服务的配置,及wind ...

  10. python 12 模块与包

    一.不知道什么原则 python文件下面只写方法,所有的可直接执行的代码,都放在条件下 原因.该文件有可能被其他文件调用 二.eval() 将字符串转为相应的数据格式可以想象json转为map 三.模 ...