文章目录

    • 1. 元组的概念
      • 1) 什么是元组
      • 2) 元组的创建方式
  • 作者:互联网老辛
  • 开发时间:2021/4/4/0004 6:54
    • 2. 元组的遍历
    • 3.集合的概念
      • 1) 什么是集合
      • 2) 集合的创建
      • 3) 集合的相关操作
      • 4)集合的关系及数据操作
        • a)集合的关系
        • b) 集合的数学操作
      • 5)集合生成式
      • 总结

1. 元组的概念

1) 什么是元组

元组: Python的内置数据结构之一,是一个不可变的序列

不可变的序列指的是没有增删改的操作。
而之前我们学习的列表和字典,是可以进行增删改查的。

2) 元组的创建方式

元组的创建方式:

  • 直接小括号
    t=(‘python’,‘hello’,90)
  • 使用内置函数tupe()
    t=tpule((‘python’,‘hello’,90))
  • 只包含一个元组的元素需要使用逗号和小括号
    t=(100,)
    我们来用代码创建和研究:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组
#1. 使用()
t=('python','yuanzu','hello',4)
#2. 使用内置函数tuple
t1=tuple(('python','hello','world'))print(t,id(t))
print(t1,id(t1))## 注意,元组的小括号可以省略t2='python','hello'
print(t2,type(t2))
## 但这种形式有个问题,如果只有一个元素,需要加个逗号t3='python',
print(type(t3))#空元组
t4=()
t5=tuple()
print('空元组',t4,t5)

这里有一个问题: 为什么元组是一个不可变的序列,要这么设置。

  • 在多任务的环境下,同时操作对象时不需要加锁。
    但是在程序中尽量不要使用不可变序列

元组是可以查的,但是不能改,不会对内容造成破坏。

如果在元组中有可变列表,那么在元组中的列表的内容也不能修改,但可以添加元素。

因为添加元素不会有新的对象产生。
举例:

作者:互联网老辛

开发时间:2021/4/4/0004 6:54

#创建元组
#1. 使用()
t=('python','hello',[4,5,6])
print(t)
print(t[0],id(t[0]))
print(t[2],id(t[2]))
#修改元组是不允许的
t[0]='yuansu'

这里会报错,因为元组是不允许修改的
t[0]=‘yuansu’ 这个就无法修改

但是里面的列表可以增加:

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组
#1. 使用()
t=('python','hello',[4,5,6])
print(t,id(t))
print(t[0],id(t[0]))
print(t[2],id(t[2]))
#修改元组是不允许的
#t[0]='yuansu'
#追加里列表内容
t1=t[2].append(100)
print(t1)
print(t,id(t))

可以看到在列表中追加元素,并没有改变ID

2. 元组的遍历

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#创建元组t=('python','hello',[4,5,6])
#1.使用索引获取,这种你得知道有多少种元素
print(t[0])
print(t[1])
print(t[2])#2. 遍历元组
for i in t:print(i)

3.集合的概念

1) 什么是集合

集合相当于是没有value的字典,是Python的内置数据结构,与列表,字典一样都属于可变类型的序列。

2) 集合的创建

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#1. 创建方式
#使用{}
s={2,3,4,5,6,7,7}
print(s)  #{2, 3, 4, 5, 6, 7}  集合会把相同的元素合并#2. 使用内置函数创建s1=set(range(6))
print(s1)### 3. 使用set创建,把列表转换成集合,同时去掉了重复的元素
s2=set([1,1,1,2,3,4,5,6,6])
print(s2,id(s2),type(s2))## 将元组转成集合
s3=set((1,2,55,67))
print(s3)

如何定义空集合

set()

这里需要注意的是; 集合是无序的

3) 集合的相关操作

  • 集合元素的判断操作
    in 或者not in
  • 集合元素的新增
    方法1: 调用add()一次添加一个元素
    方法2: 调用update() 至少添加一个元素
  • 集合中的删除操作
    remove() 一次删除一个指定的操作,如果指定的元素不存在就抛出异常
    discard() 方法,一次删除一个指定元素
    pop() 一次只删除任意一个元素
    clear() 情况集合

我们使用代码来操作:

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在s={2,3,4,5,6,7,7}
print(2 in s)
print(10 in s)
print(10 not in s)## 集合元素的新增
s.add(50)
print(s) #{2, 3, 4, 5, 6, 7, 50}s.update({200,300,400})
print(s)  #{2, 3, 4, 5, 6, 7, 200, 300, 400, 50}
s.update((20,30))  #添加元组
print(s)  #{2, 3, 4, 5, 6, 7, 200, 300, 400, 50, 20, 30}
s.update([1,2,3]) #添加列表
print(s)  #{1, 2, 3, 4, 5, 6, 7, 200, 300, 400, 50, 20, 30}#删除操作
s.remove(300)
print(300 in s) #False
s.discard(300) #没有也不会抛出异常
print(s)  #{1, 2, 3, 4, 5, 6, 7, 200, 400, 50, 20, 30}
s.pop() #随机删除
print(s)# {2, 3, 4, 5, 6, 7, 200, 400, 50, 20, 30}

4)集合的关系及数据操作

a)集合的关系

  • 两个集合是否相等
    可以使用 == 或者!=来判断
  • 一个集合是否是另外一个集合的子集
    使用issubset进行判断
  • 一个集合是另一个集合的超集
    可以使用方法 issuperset
    A是B的超集
  • 两个集合没有交集
    可以调用 isdisjoint进行判断
  1. 两个集合是否相等:
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
print(s1==s2)
print(s2!=s2)
  1. 一个集合是否是另一个集合的子集
# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#python 的简单操作
#判断元素是否在s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
s3={2,3,4}print(s3.issubset(s1)) #True
print(s2.issubset(s1)) #False

b) 集合的数学操作


我们继续从代码中来探讨:

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6:54
#集合的数学操作s1={2,3,4,5,6,7}
s2={2,3,4,8,9,0}
s3={2,3,4}#交集
print(s1.intersection(s3)) #{2, 3, 4}
#或者使用
print(s1 & s3) #{2, 3, 4}#并集
print(s1.union(s2)) #{0, 2, 3, 4, 5, 6, 7, 8, 9}
print(s1 | s2) #{0, 2, 3, 4, 5, 6, 7, 8, 9}#差集
print(s1.difference(s2)) #{5, 6, 7}
print(s1-s2) #{5, 6, 7}#对称差集
print(s1.symmetric_difference(s2))  #{0, 5, 6, 7, 8, 9}
print(s1^s2) #{0, 5, 6, 7, 8, 9}

5)集合生成式

和列表生成式差不多,只需要把【】改为{}即可

# 作者:互联网老辛
# 开发时间:2021/4/4/0004 6ss={i*i for i in range(10)}
print(s) #{0, 1, 64, 4, 36, 9, 16, 49, 81, 25}

总结

找了一张图来总结。到现在为止学习了不少数据类型了,如果记不住也没关系,在后面使用的过程中,多去总结和练习。

【Python从零到壹】Python的元组和集合相关推荐

  1. [Python从零到壹] 三十七.图像处理基础篇之图像融合处理和ROI区域绘制

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  2. [Python从零到壹] 三十五.图像处理基础篇之OpenCV绘制各类几何图形

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  3. [Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  4. 【Python从零到壹】Python条件语句详解

    欢迎大家来到互联网老辛的专栏<Python从零到壹>,在这里我将分享约300篇Python系列文章,所有文章都将结合案例.代码和作者的经验讲解,真心想把自己近十年的编程经验分享给大家,希望 ...

  5. c#使用正则表达式获取TR中的多个TD_[Python从零到壹] 四.网络爬虫之入门基础及正则表达式抓取博客案例...

    首先祝大家中秋节和国庆节快乐,欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都 ...

  6. [Python从零到壹] 二.语法基础之条件语句、循环语句和函数

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  7. [Python从零到壹] 四十一.图像处理基础篇之图像采样处理

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  8. [Python从零到壹] 十四.机器学习之分类算法五万字总结全网首发(决策树、KNN、SVM、分类对比实验)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  9. [Python从零到壹] 十三.机器学习之聚类算法四万字总结全网首发(K-Means、BIRCH、树状聚类、MeanShift)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

  10. [Python从零到壹] 十二.机器学习之回归分析万字总结全网首发(线性回归、多项式回归、逻辑回归)

    欢迎大家来到"Python从零到壹",在这里我将分享约200篇Python系列文章,带大家一起去学习和玩耍,看看Python这个有趣的世界.所有文章都将结合案例.代码和作者的经验讲 ...

最新文章

  1. Win10系列:VC++调用自定义组件1
  2. TIOBE 11 月编程语言:Java 首次跌出前二,Python 势不可挡
  3. Mac OS X 下连接CMCC无法弹出登陆页面问题
  4. 日照智能化乳品产业园签约 农民丰收节交易会对话乡村振兴
  5. 博士申请 | ​英属哥伦比亚大学李霄霄助理教授招收全奖博士生、硕士生
  6. javascript随堂练习(分支,循环语句)
  7. spring boot 加载静态文件
  8. lua学习笔记(三)
  9. 运营商缺的是应用还是想法--广州晨皓
  10. Atitit 高并发设计实践 艾提拉著 目录 1. 并发的实现俩中模式 并发角度来看 基于事件触发vs线程的 1 2. 负载均衡 1 2.1. 云服务模型paas caas faas+http
  11. mysql系列之InnoDB存储引擎结构详解
  12. php 7.x memcache.dll nts,vc15等下载
  13. Webmin远程命令执行漏洞(CVE-2019-15107 )复现
  14. Java实现POS打印机无驱打印(转)
  15. Thrift oneway关键字
  16. iphone横竖屏切换,旋转屏幕
  17. 计算机硬件日语,求一些电脑硬件的日语说法(比如显卡等)
  18. 像元二分模型计算植被覆盖度
  19. Android电视清理系统应用,【教程】无需root!卸载小米电视/盒子内置应用竟如此简单...
  20. IT职场法则七条——献给正在努力奋斗的你们

热门文章

  1. html超链接点击状态改变背景颜色,div css鼠标悬停锚文本超链接文字背景颜色或图片变化...
  2. 记录一个坑:ValueError: Colormap spectral is not recognized.
  3. matlab坐标污染物浓度,如何用MATLAB画粒子空间分布图,并以颜色的深浅表示浓度?...
  4. Pig_6. 数据摄取 输出 -- Protocel Buffer -- 待完善(腾讯 TDW 项目)
  5. Fen - 基于deno的简单Typescript Web框架
  6. 芒果TV首发IPTV智能一体机“翼芒”定义融合终端新生态
  7. springboot 秒杀系统(一)
  8. 猜中了A股会震荡,没猜中会这样
  9. mysql 2005 下载_sql2005下载完整版 中文免费版
  10. 微信小程序源代码分享:模仿面包旅行(微信小程序版)