当前位置: 首页 > news >正文

元组(tuple)—数据容器

一、元组的定义方式

元组同列表一样,可以封装多个不同类型的元素在内,但最大的不同点在于: 元组一旦定义完成,就不可修改,适用于传递不可被篡改的信息。

定义元组时使用小括号,用逗号隔开各个数据,数据可以是不同的数据类型。

#定义元组字面量
('a',1,'apple','花朵')
#定义元组变量
information=('风','雨',12,'watermelon')
#定义空元组
blank1=()#方式1
blank2=tuple()#方式2

当元组只有一个数据时,这个数据后面必须添加逗号,否则就不是元组,如下所示:

t1=('a',)

二、元组的下标索引

元组中的每一个元素都有其编号,称之为下标索引。同列表一样,分为正向和反向。

注意:下标索引的取值范围,超出范围无法取出元素,并且会报错。

我们通过代码来验证一下:

t=('a','b',24,90,'blue','milk','加菲猫','欧迪')
print((t[0]))
print((t[2]))
print((t[-1]))
print((t[-2]))

输出:

a
24
欧迪
加菲猫

三、元组的方法

元组由于不可修改的特性,所以操作方法较少,包括:查找指定元素的下标、统计指定元素在元组内的数量、统计元组内的元素个数。

3.1查找指定元素的下标

语法:元组.index(元素)

功能:查找指定元素在元组中的下标,如果找不到,报错ValueError    

具体应用:

t=('a','b',24,90,'blue','milk','加菲猫','欧迪')
print(t.index('b'))

输出:

1

3.2统计指定元素在元组内的数量

语法:元组.count(元素)

具体应用:

t=('a','b',24,90,'blue','milk','加菲猫','b','欧迪')
print(t.count('b'))

输出:

2

3.3统计元组内的元素个数

语法:len(元组)      

功能:得到一个int数字,表示元组内的元素数量

具体应用:

t=('a','b',24,90,'blue','milk','加菲猫','b','欧迪')
print(len(t))

输出:

9

元组的常用方法总结如下:

编号语法功能
1元组.index(元素)查找某个数据,如果数据存在返回对应的下标,否则报错
2元组.count(元素)统计某个数据在当前元组出现的次数
3len(元组)统计元组内的元素个数

四、元组的嵌套

元组支持嵌套:

元组的内容不可以修改,否则会直接报错。但当元组内的元素是列表类型时,可以修改元组内的列表的内容(修改元素、增加、删除等),如下面代码:

t2=(1,2,[1,2,3],['a','b','c '])
print(t2)
t2[2][1]='c'
t2[3][1]=1
print(t2)

输出:

(1, 2, [1, 2, 3], ['a', 'b', 'c '])
(1, 2, [1, 'c', 3], ['a', 1, 'c '])

但是元组中列表这个元素本身无法被修改:

t2=(1,2,[1,2,3],['a','b','c '])
t2[2]=0
print(t2)

运行会报错:

五、元组的遍历

将容器内的元素依次取出进行处理的行为,称之为遍历,或者迭代。元组的遍历方式与列表相同。

5.1用while循环遍历元组元素

t=('a','b',24)
i=0
while i<len(t):print(t[i])i+=1

输出:

a
b
24

5.1用for循环遍历元组元素

t=('a','b',24)
for i in t:print(i)

输出:

a
b
24

六、元组的特点

  1. 可以容纳多个数据
  2. 可以容纳不同类型的数据
  3. 数据有序存储(下标索引)
  4. 允许重复数据存在
  5. 不可以修改(不支持增加、删除、修改元素)

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 常见的MySQL数据库面试题
  • 样本熵与近似熵:度量时间序列复杂性的方法
  • 2024 NVIDIA开发者社区夏令营环境配置指南(Win Mac)
  • 【过题记录】8.4(robocom补题,网络流)
  • Go语言加Vue3零基础入门全栈班11 Go语言+gorm用户管理系统实战 2024年08月03日 课程笔记
  • 一款好用的开源网站内容管理系统
  • Matplotlib中用于绘制垂直线的函数axvline的参数介绍
  • 什么是提示词注入攻击
  • 读零信任网络:在不可信网络中构建安全系统07设备信任
  • 网络编程相关
  • 6万字嵌入式最全八股文面试题大全及参考答案(持续更新)
  • JavaDS —— AVL树
  • C++ 最小生成树 洛谷
  • 群晖NAS结合内网穿透工具实现远程连接内网SFTP服务传输文件
  • 【人工智能基础二】人工神经网络基础
  • 5、React组件事件详解
  • HTTP--网络协议分层,http历史(二)
  • IOS评论框不贴底(ios12新bug)
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • Quartz初级教程
  • vue-router的history模式发布配置
  • 初识 webpack
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 手机端车牌号码键盘的vue组件
  • 小程序01:wepy框架整合iview webapp UI
  • 用简单代码看卷积组块发展
  • 原生js练习题---第五课
  • 你对linux中grep命令知道多少?
  • [地铁译]使用SSD缓存应用数据——Moneta项目: 低成本优化的下一代EVCache ...
  • ​​​【收录 Hello 算法】9.4 小结
  • ​html.parser --- 简单的 HTML 和 XHTML 解析器​
  • #快捷键# 大学四年我常用的软件快捷键大全,教你成为电脑高手!!
  • $.extend({},旧的,新的);合并对象,后面的覆盖前面的
  • (2)(2.4) TerraRanger Tower/Tower EVO(360度)
  • (2)nginx 安装、启停
  • (Java企业 / 公司项目)点赞业务系统设计-批量查询点赞状态(二)
  • (M)unity2D敌人的创建、人物属性设置,遇敌掉血
  • (二)测试工具
  • (附源码)spring boot基于小程序酒店疫情系统 毕业设计 091931
  • (每日持续更新)jdk api之FileReader基础、应用、实战
  • (转)Oracle存储过程编写经验和优化措施
  • (转)视频码率,帧率和分辨率的联系与区别
  • ./configure、make、make install 命令
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .Mobi域名介绍
  • .net core 调用c dll_用C++生成一个简单的DLL文件VS2008
  • .net 使用$.ajax实现从前台调用后台方法(包含静态方法和非静态方法调用)
  • .net 托管代码与非托管代码
  • .net的socket示例
  • .NET值类型变量“活”在哪?
  • .net专家(张羿专栏)
  • .pyc文件是什么?
  • //解决validator验证插件多个name相同只验证第一的问题
  • [ C++ ] STL_vector -- 迭代器失效问题
  • [ 隧道技术 ] cpolar 工具详解之将内网端口映射到公网