Python tuple(元组)
tuple即元组,与list类似,差别在于tuple中的元素一旦初始化就不可更改,即tuple是操作受限制的list(不能更改)。
list参见:https://cloud.tencent.com/developer/article/1037247
Python tuple
tuple格式:以括号作为识别符, 元素间以”,”分隔,末尾加不加”;”语法上都没错。
tup = (元素1, 元素2, 元素3,…); //;可省略
tup = (1, 2, 3, 4)
tup = (5, 6, 'a', 'b') #tuple中的元素也可以不同
tup1 = (tup, 8, "ad") #也可以是另一个tuple
tup = "e", "f", "g" #这种省略括号的写法也是对的
创建空元组tup = ();
需要注意的是创建单元素元组的时候不可以这么写tup=(1);
,因为括号本身是运算符,该写法解释器无法正确识别。
正确写法: tup = (1,)
>>> tup = (1,)
>>> tup
(1,)
>>>
python tuple基本操作
tuple和list一样,每一个元素都分配了索引,与list不同tuple中的元素不能修改。你可能会疑惑,不能修改那还有什么用呢,事实上,因为不能修改,所以其值是可以确定的,所以比list要安全,因此在tuple和list都能用的情况下建议尽量多使用tuple。
>>> tup1 = ('a', 'b', 1, 2)
>>> tup2 = (1, 2, 3, 4, 5, 6)
>>> tup1[1]
'b'
>>> print ("tup1[0]: ", tup1[0])
tup1[0]: 'a'
>>> print ("tup2[1:5]: ", tup2[1:5]) #打印索引从1到4的元素,不包括5
2, 3, 4, 5
一样可以反向读取和截取
>>> tup2[-1]
6
>>> tup[1:]
(2 3 4 5 6)
但修改tuple元素操作是非法的
>>>tup1[0] = 90
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
tuple中的元素不能被删除,但可以使用del删除整个元组
>>> del tup
>>> tup
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'tup' is not defined
>>>
Python tuple 操作符
Python表达式 |
结果 |
描述 |
---|---|---|
len((1, 2, 3,4)) |
4 |
求tuple长度 |
(1, 2, 3) + ('a', 'b', 'c') |
(1, 2, 3, 'a', 'b', 'c') |
“+”实际上是连接 |
('a') * 3 |
('a','a','a') |
“*” 实际上是复制 |
3 in (1, 2, 3, 4) |
True |
检查成员是否存在 |
for i in (1, 2, 3, 4) print(x) |
1 2 3 4 |
迭代 |
Python tuple内置函数
方法 |
说明 |
---|---|
len(tuple) |
计算元组元素个数。 |
max(tuple) |
返回元组中元素最大值。 |
min(tuple) |
返回元组中元素最小值。 |
tuple(list) |
将列表转换为元组。 |
注意: 因为tuple元素不能修改,所以也就没有类似于list的remove和append等方法。
特别注意:
当tuple中的元素为list时,虽然tuple的元素不能修改,但list的元素是可以修改的,这说明tuple的元素不变实际上指的是tuple元素的指针(或者地址)永远不变,而指针指向的内容是可以修改的。
>>> t = ('a', 'b', [1, 2])
>>> t[2][0] = 'c'
>>> t[2][1] = 'd'
>>> t
('a', 'b', ['c', 'd'])
详细的解释可以看廖雪峰的Python教程,在最底部。 https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/0014316724772904521142196b74a3f8abf93d8e97c6ee6000
- T-SQL 查询、修改数据表
- sql server 事务处理
- Android P专区免费开放 -- 同样的Android,不同的体验
- YJango:TensorFlow中层API Datasets+TFRecord的数据导入
- CentOS7上ElasticSearch安装填坑记
- ASP.NET Core 阶段性总结
- Dapper逆天入门~强类型,动态类型,多映射,多返回值,增删改查+存储过程案例演示
- C# 窗体常用API函数 应用程序窗体查找
- C#进阶系列——WebApi接口测试工具:WebApiTestClient
- 由Dapper QueryMultiple 返回数据的问题
- 【初探IONIC】不会Native可不可以开发APP?
- MVC视图展现模式之移动布局解析-续集
- 在 ASP.NET MVC 中使用异步控制器
- MVC5 Entity Framework学习之异步和存储过程
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- leetcode-easy-array-删除排序数组中的重复项
- SQL注入靶场之SQLiLabs搭建指南
- [OHIF-Viewers]医疗数字阅片-医学影像-redux-token实操(1)
- [OHIF-Viewers]医疗数字阅片-医学影像-屏蔽StudyList病例列表
- Ant Design for Vue的Table组件一列显示多个参数
- 【React】React-router的使用记录
- Blazor带我重玩前端(四)
- Android绘制系统简介
- E: Sub-process /usr/bin/dpkg returned an error code (1) 解决方案
- Linux 如何使用包管理器安装 Node.js
- CSS画图
- R语言聚类算法的应用实例
- Python时间序列选择波动率预测指数收益算法分析案例
- Linux 常用系统工作命令-date
- R使用LASSO回归预测股票收益