本篇文章给大家带来的内容是关于Python集合的概念是什么?Python集合的介绍,有一定的参考价值,有需要的朋友可以参考一下,希望对你有所帮助。

集合的描述

集合是无序的、不重复的数据集合,它本身是可变的,但里面的元素是不可变类型(这里要注意,即使是含有列表的元组也不可以,必须是完全不可变类型)

创建集合

创建集合可以使用大括号{}来创建,元素间用逗号分隔,但是不能用它来创建空集合,因为{}创建的是空字典。如 set1 = {1,2,3}

也可以使用set()函数来创建集合,其中的参数为可迭代对象即可(比如字符串、列表、元组、迭代器等),前提是元素中必须是不可变类型。i = 'abcdefg'

a =set(i)

print(type(a))

print(a)

----------

{'b', 'a', 'f', 'd', 'g', 'e', 'c'}

增 add update

add(elem)

可以向集合中添加新元素,如果该元素已存在则不做任何改变s1 = {1,2,3}

s1.add('qwe')

print(s1)

----------

{1, 2, 3, 'qwe'}

update(*others)

可将其他可迭代对象(比如字符串、列表、元组)添加到集合中,自动删除重复元素s1 = {1,2,3}

it = [3,4,5]

s1.update(it)

print(s1)

----------

{1, 2, 3, 4, 5}

删 remove(elem) discard(elem) pop() clear()

remove(elem)

将元素从集合中删除,如果该元素不存在则会报错。s1 = {1,2,3}

s1.remove(2)

print(s1)

----------

{1, 3}

discard(elem)

和remove一样可以将元素从集合中删除,区别是如果元素不存在则不会报错。s1 = {1,2,3}

s1.discard(6)

print(s1)

----------

{1, 2, 3}

pop()

从集合中随机删除一个元素,并且返回该元素,如果集合为空则会报错s1 = {1,2,3}

a = s1.pop()

print(s1)

print(a)

----------

{2, 3}

1

clear()

用于清空集合。

几种运算方法

对于集合来讲有几种运算方法:交集、并集、差集、反交集、子集、超集

下面用代码来详细说明每种方法的用法s1 = {1,2,3,4,5}

s2 = {3,4,5,6,7}

print('交集:',s1 & s2) #可用&或者intersection,输出一个新的集合,包含共同拥有的元素

print('交集:',s1.intersection(s2))

print('并集:',s1 | s2) #可用|或者union,输出一个新的集合,包含两个集合中所有的元素(去重)

print('并集:',s1.union(s2))

print('差集:',s1 - s2) #可用 - 或者difference,输出一个新的集合,包含前一个集合中除去共有的元素

print('差集:',s1.difference(s2))

print('反交集:',s1 ^ s2) #可用^或者 symmetric_difference,输出一个新的集合,包含两个集合中除去共有的元素后剩余的所有元素

print('反交集:',s1.symmetric_difference(s2))交集: {3, 4, 5}

交集: {3, 4, 5}

并集: {1, 2, 3, 4, 5, 6, 7}

并集: {1, 2, 3, 4, 5, 6, 7}

差集: {1, 2}

差集: {1, 2}

反交集: {1, 2, 6, 7}

反交集: {1, 2, 6, 7}

子集与超集,简单来讲就是一个集合中的元素包含另一个集合中所有的元素,则“大的”集合叫超集,“小的”叫子集s1 = {1,2,3}

s2 = {1,2,3,4,5}

print(s1.issubset(s2)) #输出为True,s1是s2的子集

print(s2.issuperset(s1))#输出为True,s2是s1的超集

----------

True

True

另外,使用frozenset('集合名'),可以把集合变成不可变集合

python的集合是什么_Python集合的概念是什么?Python集合的介绍相关推荐

  1. python处理列表中字典_Python 列表、元组、字典及集合操作详解

    一.列表 列表是Python中最基本的数据结构,是最常用的Python数据类型,列表的数据项不需要具有相同的类型 列表是一种有序的集合,可以随时添加和删除其中的元素 列表的索引从0开始 1.创建列表 ...

  2. python文件是什么的集合和抽象_python学习笔记(三):文件操作和集合

    这篇博客来说一下python对文件的操作. 对文件的操作分三步: 1.打开文件获取文件的句柄,句柄就理解为这个文件 2.通过文件句柄操作文件 3.关闭文件. 现有以下文件file.txt: 1 2 3 ...

  3. 用python设计一个管理系统思路_Python大佬一个月打造的Python系统学习流程图!

    对于刚开始接触Python的小伙伴来说,没有思路方法,不知道从何开始学习,把软件环境安装好后就不知所措了!接下来我给大家分享下多位大牛倾力打造的python系统学习流程,一个月才设计完的! Pytho ...

  4. python全栈之巅_Python 迭代器、生成器详解 - Python全栈之巅

    迭代器 迭代器是访问集合元素的一种方式.迭代器对象从集合的第一个元素开始访问,知道所有的元素被访问完结束.迭代器只能往前不会后退,不过这也没什么,因为人们很少在迭代途中往后退. 使用迭代器的优点 对于 ...

  5. python 数字运算及格式化_Python基础教程(3)Python数据类型、运算与格式化

    一.Python的数据类型 主要分为了数字型和非数字型两个大类,其中数字型又包含整形(int).浮点型(float).布尔型(bool),而非数字分为字符串(str).列表(list).元组(tupl ...

  6. 用python写一个彩票过滤器_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程 python入门教程NO.6 用python做个简单的彩票号码统计分析工具 本文涉及的python基础语法是:字典.集合及for循环 字典的定义 字典也是一种可变的容器,它可以存 ...

  7. python内建函数测试对象身份_python 学习笔记day03-python基础、python对象、数字、函数...

    python基础 语句和语法 注释及续行 首要说明的是:尽管python可读性最好的语言之一,这并不意味者程序员在代码中就可以不写注释 和很多UNIX脚本类似,python注释语句从#字符开始 注释可 ...

  8. python写彩票预测软件_python入门教程NO.6 用python做个简单的彩票号码统计分析工具...

    python入门教程NO.6 用python做个简单的彩票号码统计分析工具-1.jpg (37.04 KB, 下载次数: 0) 2020-11-27 14:29 上传 python入门教程 pytho ...

  9. python编程入门第一课_python入门前的第一课 python怎样入门

    人工智能时代的到来,很多文章说这么一句:"不会python,就不要说自己是程序员",这说的有点夸张了,但确实觉得目前python这个语言值得学习,而且会python是高薪程序员的必 ...

  10. python中难的算法_Python算法很难吗?python神书《算法图解》PDF电子版分享给你

    许多小伙伴后台私信说,python算法让自己很头疼,有没有可以让算法像小说一样有趣的书籍资料呢?看这里吧!小宋为大家找到了这本<算法图解>的PDF电子版!让你在学习python的路上变得轻 ...

最新文章

  1. 微信小程序开发之不能使用eval函数的问题
  2. sklearn中train_test_split函数中的random_state有什么用?
  3. CSU OJ1960
  4. C语言-将数字转化为字符串
  5. php里注册管理员账号,WordPress中创建用户角色的相关PHP函数使用详解
  6. java中将date插入mysql中date_JAVA 处理时间 - java.sql.Date、java.util.Date与数据库中的Date字段的转换方法[转]...
  7. WebDriver元素等待机制
  8. ubuntu下修改网卡名称
  9. 云计算入门科普系列:小型云计算平台怎么搭建?
  10. odd raio值 是什麼_NBA2K20球员能力值又一次更新!
  11. 什么是 DNS 劫持、投毒、解析?看这文就懂了!
  12. BZOJ 4241 历史研究
  13. 深入Jetty源码之HttpGenerator
  14. python做服务器需要什么模块_用Python自带的包建立简单的web服务器
  15. H264/AVC-NALU解析
  16. 杰理AC632N蓝牙芯片iokey使用解析(通用MCU版)
  17. chrome下载速度慢,手把手教学
  18. 线和面的方程区别_平面方程和直线方程的区别?
  19. 阿里云用域名、ip访问不了网站
  20. 学而不思则罔,思而不学则殆

热门文章

  1. 163个人邮箱注册申请流程,公司邮箱怎么注册?
  2. 淘宝返利是怎么回事?是真的还是假的?
  3. Java常用jar包用途
  4. 中国5G基站将带动155GWh以上锂电池需求
  5. 太原理工软件学院c语言2020,庆祝软件学院成立十周年创意设计之logo投稿入围展示...
  6. 开关电源Buck电路CCM及DCM工作模式
  7. 小觅双目+IMU联合标定
  8. Linux系统 应急响应自动化检测工具 GScan ——使用教程
  9. Cfree5可以JAVA_无法使用free()释放内存
  10. latm header与 ADTS header之间的转换