Python学习之集合set

 更新时间:2021年10月29日 11:47:35   作者:小瑀1987  
今天小编就为大家分享一篇基于Python集合set的文章,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

集合 (set)

1、由不同的元素组成,用{ }大括号括起来,用,逗号隔开

2、无序的

3、集合中的元素必须是比可变类型

4、集合会自动去重

例如:s = {1,2,3,4,5,6} #这就是一个集合

5、合集是可变的 但是可以通过参数frozenset变成不可变的集合

s = {1,'2',3,4,5,6}
print(s) #{'2', 1, 3, 4, 5, 6}
a = frozenset(s) #不可变
print(a) #frozenset({'2', 1, 3, 4, 5, 6})

一 、合集的一些常用命令

1、set 定义合集

s = set('adam')
print(s) #{'m', 'a', 'd'}

可以看到输出结果是 乱序的 而且 已经去重了,并且它已经把原来的字符串 打散到了最小单位

2、add 添加元素

s = {1,2,3,4,5,6}
s.add('3') #添加了一个str类型的 3
print(s) #{1, 2, 3, 4, 5, 6, '3'}
s.add(('4', 'a', 'b', 'c'))
print(s) #{1, 2, 3, 4, 5, 6, ('4', 'a', 'b', 'c'), '3'}

1、如果添加的是的集合里面原本就含有的元素,那么就会被自动去重

2、被添加的元素是 被乱序放入的 也就是说集合本身是乱序的

3、如果被添加的是 多个元素 那么 集合会把他们视为一个元素 打包插入,只有元祖可以插入,列表和字典不行

3、clear 清空

s = {1,2,3,4,5,6}
s.clear()
print(s) #set()

4、pop 随机删除一个元素

s = {1,2,3,4,5,6,7}
s.pop()
print(s) #{2, 3, 4, 5, 6, 7}

5、remove 指定删除

s = {1,2,3,4,5,6}
s.remove(3)
print(s) #{1, 2, 4, 5, 6}

PS:找不到匹配要删除的字符就会报错

6、discard 指定删除

s = {1,2,3,4,5,6}
s.discard(7)
print(s) #{1, 2, 3, 4, 5, 6}

PS:找不到匹配要删除的字符不会报错

二、关系运算

1、交集 找到两个集合相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s&s1) #{1, 3, 'd', 'm'}
print(s.intersection(s1)) #{1, 3, 'd', 'm'}

& 是运算符号, intersection 是运算命令他们的结果是一样的

2、并集 合并两个集合

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s|s1) #{1, 2, 3, 'm', '2', 'd', 'a'}
print(s.union(s1)) #{1, 2, 3, 'm', '2', 'd', 'a'}

| 竖是运算符号,union 是运算命令他们的结果是一样的

3、差集 保留前者与后者不同的元素 去除相同的元素

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s - s1) #{'a', 2}
print(s1.difference(s)) #{'2'}

- 减号是运算符号,difference 是运算命令他们的结果是一样的

由于前后两次 两个 集合被比较的 关系对调了 所以 结果两次输出的结果也不同

4、交叉补集 只保留两者不同的部分

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
print(s ^ s1) #{2, '2', 'a'}
print(s1.symmetric_difference(s)) #{2, '2', 'a'}

^ 是运算符号,symmetric_difference是运算命令他们的结果是一样的

5、isdisjoint 判断是否有交集返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,'2',3,'m', 'd'}
s2 = {15,22}
print(s1.isdisjoint(s2)) #True
print(s1.isdisjoint(s)) #False

没有交集就返回 True 有交集就返回False

6、issubset判断后者是否包含前者 返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
print(s1.issubset(s2)) #False
print(s1.issubset(s)) #True

如果后者包含前者 则返回 True 如果后者不完全包含前者 则返回 False

7、issuperset判断前者是不是完全包含后者,返回布尔值

s = {1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s3 ={1,2,3,'m', 'a', 'd'}
print(s.issuperset(s2)) #False
print(s.issuperset(s1)) #True
print(s.issuperset(s3)) #True

前者完全包含后者 则 返回 True 没有完全包含后者则返回False 前后两者相等也是True

8、update 更新

s = {1,2,3,'m', 'a', 'd'}
s3 ={1,2,3,'m', 'a', 'd'}
s1 ={1,2,3,'m', 'd'}
s2 = {15,22,1}
s.update(s3)
print(s) #{1, 2, 3, 'a', 'm', 'd'}
print(s3) #{1, 2, 3, 'd', 'm', 'a'}
s1.update(s2)
print(s1) #{1, 2, 3, 'm', 22, 'd', 15}
print(s2) #{1, 22, 15}

把后者的元素 更新到前者内

PS:

访问方式

直接 访问:数字

顺序访问:字符串、列表、元祖

映射(keys):字典

字典的查询速度最快 但是字典占内存会比较高

存放元素个数:

容器类(存放多个值):列表、元祖、字典

原子类(只能存放一个值):数字、字符串

总结

本篇文章就到这里了,希望能够给你带来帮助,也希望您能够多多关注脚本之家的更多内容!

相关文章

  • Python入门教程(三)Python语法解析

    Python入门教程(三)Python语法解析

    这篇文章主要介绍了Python入门教程(三)Python语法解析,Python是一门非常强大好用的语言,也有着易上手的特性,本文为入门教程,需要的朋友可以参考下
    2023-04-04
  • python ansible服务及剧本编写

    python ansible服务及剧本编写

    python语言是运维人员必会的语言,而ansible是一个基于Python开发的自动化运维工具 (saltstack)。其功能实现基于SSH远程连接服务;ansible可以实现批量系统配置、批量软件部署、批量文件拷贝、批量运行命令等功能
    2017-12-12
  • Python os模块学习笔记

    Python os模块学习笔记

    这篇文章主要介绍了Python os模块学习笔记,本文总结了OS模块的常用方法、实用方法,并给出了两个使用实例,需要的朋友可以参考下
    2015-06-06
  • Python2 Selenium元素定位的实现(8种)

    Python2 Selenium元素定位的实现(8种)

    这篇文章主要介绍了Python2 Selenium元素定位的实现,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2019-02-02
  • python批量修改图片尺寸,并保存指定路径的实现方法

    python批量修改图片尺寸,并保存指定路径的实现方法

    今天小编就为大家分享一篇python批量修改图片尺寸,并保存指定路径的实现方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • pandas去重复行并分类汇总的实现方法

    pandas去重复行并分类汇总的实现方法

    这篇文章主要介绍了pandas去重复行并分类汇总的实现方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-01-01
  • Python数据类型--字典dictionary

    Python数据类型--字典dictionary

    这篇文章主要介绍了Python数据类型字典dictionary,字典是另一种可变容器模型,且可存储任意类型对象。下面详细内容需要的小伙伴可以参考一下,希望对你有所帮助
    2022-02-02
  • Python中多浏览器实例项目的隔离策略与实现

    Python中多浏览器实例项目的隔离策略与实现

    在 Python 实现多浏览器实例的 JavaScript 注入时,要确保数据隔离,会话隔离,存储隔离,下面是一些关键的隔离策略和代码实现,希望对大家有所帮助
    2025-03-03
  • python实现复制文件到指定目录

    python实现复制文件到指定目录

    这篇文章主要为大家详细介绍了python实现复制文件到指定的目录下,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-10-10
  • Flask解决跨域的问题示例代码

    Flask解决跨域的问题示例代码

    这篇文章主要介绍了Flask解决跨域的问题示例代码,分享了相关代码示例,小编觉得还是挺不错的,具有一定借鉴价值,需要的朋友可以参考下
    2018-02-02

最新评论