Python数据类型之Tuple元组实例详解


Posted in Python onMay 08, 2019

本文实例讲述了Python数据类型之Tuple元组。分享给大家供大家参考,具体如下:

tuple元组

1.概述

本质上是一种有序的集合,和列表非常的相似,列表使用[]表示,元组使用()表示.

特点:一旦初始化,就不能发生改变

2.元组的创建

格式:

元组名 = (元素1, 元素2 ,元素3,…)

#创建空的元组
tuple1 = ()
print(tuple1)
#创建带有元素的元组
tuple2 =(22, 33, 14, 109)
print(tuple2)
#与列表类似,元组中的元素类型可以不同
tuple3 = (23,True,"good")
print(tuple3)
#定义只有一个元素的元组
tuple4 = (1) #这定义的不是元组而是整数1
tuple4 = (1,) #定义一个元素的元组定义时必须加一个逗号",",用来消除歧义

输出:

()
(22, 33, 14, 109)
(23, True, 'good')

3.元组元素的访问

3.1 访问元组中的元素:

格式: 元组名[下标]

tuple1 = (20,40,201,401)
print(tuple1[0])
#注意使用下标取值的时候,要注意下标的取值范围,不要下标越界
#获取最后一个元素
print(tuple1[-1])

输出:

20
401

3.2 修改元组

在元组定义的时候大家都知道元组一旦初始化就不能改变,但是现在如果我想改变元组怎么办呢?

元组是不能修改的,但是列表可以,元组中的元素的数据类型可以是不同类型的,因此我们可以通过在元组中添加一个列表,而列表是可以修改的,进而来”修改“我们的元组

tuple1 = ('hello', 'you',[20, 30])
#修改元组
tuple1[0] = 'hi' 
#报错,元组不能修改
tuple1[2][1] = 'good'

注意:从表面上看我们的元组确实是改变了,但其实改变的不是我们的元组,而是list的元素,所谓的tuple不变是说,tuple的每个元素的指向永远不变,一旦它指向了这个list,就不能改指向其他的对象,但是指向的list本身是可变的!

tuple1 = ('hello', 'you',[20, 30])
#修改元组
tuple1[2][1] = 'good'
print(tuple1)

输出:

('hello', 'you', [20, 'good'])

3.3 删除元组

元组是不可变的,但是我们可以使用del语句删除整个元组

tuple1 = ('hello', 'hi')
del tuple1
print(tuple1)
#此时会报错

4.元组操作

4.1 元组连接组合

语法:

元组1 元组2

元组3 = 元组1 + 元组2

tuple1 = (1, 2, 3)
tuple2 = (4, 5, 6)
print(tuple1 + tuple2)

结果

(1, 2, 3, 4, 5, 6)

注意:元素连接组合并没有改变原来的元组,而是生成了一个新的元组。

4.2 元组重复

语法:

元组2 = 元组1 * n

tuple1 = (1, 2, 3)
tuple2 = tuple1 * 3
print(tuple2)

结果

(1, 2, 3, 1, 2, 3, 1, 2, 3)

4.3 判断元素是否在元组中

语法:

元素 in 元组

若存在则返回True,否则返回False

tuple1 = (1, 2, 3)
print( 1 in tuple1)

结果

True

tuple1 = (1, 2, 3)
print( 5 in tuple1)

结果

False

4.4 元组的截取

语法:

元组名[start:end]

  • 截取的元组范围[start,end)
  • 功能:获取开始下标到结束下标之前的所有元素。
  • 若不指定start则默认是从开头开始截取到指定位置
  • 若不指定end则默认从指定位置截取到结尾
tuple1 = (1, 2, 3, 8, 'hello', 'good')
tuple2 = tuple1[2:5]
print(tuple2)

结果

(3, 8, 'hello')

tuple1 = (1, 2, 3, 8, 'hello', 'good')
tuple2 = tuple1[:5]
print(tuple2)

结果

(1, 2, 3, 8, 'hello')

tuple1 = (1, 2, 3, 8, 'hello', 'good')
tuple2 = tuple1[3:]
print(tuple2)

结果

(8, 'hello', 'good')

5.元组的方法

5.1 len(tuple)

功能:获取元组元素的个数

tuple1 = (1, 2, 3, 8, 'hello', 'good')
print(len(tuple1))

结果

6

5.2 max(tuple)

功能:获取元组中元素的最大值

tuple1 = (1, 2, 3, 8, 20, 13)
print(max(tuple1))

结果

20

5.3 min(tuple)

功能:获取元组中元素的最小值

tuple1 = (1, 2, 3, 8, 20, 13)
print(min(tuple1))

结果

1

5.4 tuple(list)

功能:将列表转换为元组

list1 = [1, 2, 3, 8, 20, 13]
print(tuple(list1))

结果

(1, 2, 3, 8, 20, 13)

6.二维元组

与二维列表类似,一个元组中的元素依然是元组,则成为二维元组。

元组名 =(元组1,元组2,…)

tuple1 = ((1, 2, 3),(4, 5, 6),(7, 8, 9))

二维元组取值

元组名[下标1][下标2]

tuple1 = ((1, 2, 3),(4, 5, 6),(7, 8, 9))
#获取第一个元组的第一个元素
print(tuple1[0][0])

结果

1

更多Python相关内容感兴趣的读者可查看本站专题:《Python列表(list)操作技巧总结》、《Python编码操作技巧总结》、《Python数据结构与算法教程》、《Python函数使用技巧总结》、《Python字符串操作技巧汇总》、《Python入门与进阶经典教程》及《Python文件与目录操作技巧汇总》

希望本文所述对大家Python程序设计有所帮助。

Python 相关文章推荐
Python中暂存上传图片的方法
Feb 18 Python
Python实现程序的单一实例用法分析
Jun 03 Python
浅谈numpy中linspace的用法 (等差数列创建函数)
Jun 07 Python
python的文件操作方法汇总
Nov 10 Python
python验证码识别教程之灰度处理、二值化、降噪与tesserocr识别
Jun 04 Python
pyqt5利用pyqtDesigner实现登录界面
Mar 28 Python
Python、 Pycharm、Django安装详细教程(图文)
Apr 12 Python
基于Django框架的权限组件rbac实例讲解
Aug 31 Python
Python爬虫爬取煎蛋网图片代码实例
Dec 16 Python
python 操作mysql数据中fetchone()和fetchall()方式
May 15 Python
pandas 操作 Excel操作总结
Mar 31 Python
pytorch中的 .view()函数的用法介绍
Mar 17 Python
基于腾讯云服务器部署微信小程序后台服务(Python+Django)
May 08 #Python
python中正则表达式与模式匹配
May 07 #Python
详解Python3网络爬虫(二):利用urllib.urlopen向有道翻译发送数据获得翻译结果
May 07 #Python
python对象与json相互转换的方法
May 07 #Python
python使用threading.Condition交替打印两个字符
May 07 #Python
python实现银联支付和支付宝支付接入
May 07 #Python
详解Python 爬取13个旅游城市,告诉你五一大家最爱去哪玩?
May 07 #Python
You might like
怎样去阅读一份php源代码
2009/08/21 PHP
php getsiteurl()函数
2009/09/05 PHP
PHP三元运算符的结合性介绍
2012/01/10 PHP
PHP实现多进程并行操作的详解(可做守护进程)
2013/06/18 PHP
thinkphp使用phpmailer发送邮件的方法
2014/11/24 PHP
yii2 数据库读写分离配置示例
2017/02/10 PHP
php+lottery.js实现九宫格抽奖功能
2019/07/21 PHP
[原创]来自ImageSee官方 JavaScript图片浏览器
2008/01/16 Javascript
判断用户的在线状态 onbeforeunload事件
2011/03/05 Javascript
基于jQuery的动态表格插件
2011/03/28 Javascript
ASP.NET jQuery 实例7 通过jQuery来获取DropDownList的Text/Value属性值
2012/02/03 Javascript
javascript中关于break,continue的特殊用法与介绍
2012/05/24 Javascript
基于豆瓣API+Angular开发的web App
2015/01/02 Javascript
javascript 闭包详解
2015/02/15 Javascript
纯javascript实现四方向文本无缝滚动效果
2015/06/16 Javascript
JavaScript对象数组的排序处理方法
2015/10/21 Javascript
AngularJS 使用$sce控制代码安全检查
2016/01/05 Javascript
JavaScript引用类型和基本类型详解
2016/01/06 Javascript
Bootstrap实现带动画过渡的弹出框
2016/08/09 Javascript
详解Vue双向数据绑定原理解析
2017/09/11 Javascript
解决Vue编译时写在style中的路径问题
2017/09/21 Javascript
JavaScript使用ul中li标签实现删除效果
2019/04/15 Javascript
[03:42]2014DOTA2西雅图国际邀请赛7月9日TOPPLAY
2014/07/09 DOTA
Python 仅获取响应头, 不获取实体的实例
2019/08/21 Python
pytorch方法测试——激活函数(ReLU)详解
2020/01/15 Python
Python如何将图像音视频等资源文件隐藏在代码中(小技巧)
2020/02/16 Python
通过实例解析Python return运行原理
2020/03/04 Python
Python绘制动态水球图过程详解
2020/06/03 Python
html5 利用canvas实现超级玛丽简单动画
2013/09/06 HTML / CSS
激光脱毛、蓝光和护肤:Tria Beauty
2019/03/28 全球购物
应届生.NET方向面试题
2015/05/23 面试题
道德之星事迹材料
2014/05/03 职场文书
2015年七七事变78周年纪念活动方案
2015/05/06 职场文书
预备党员群众意见
2015/06/01 职场文书
爱国之歌(8首)
2019/09/29 职场文书
Keras多线程机制与flask多线程冲突的解决方案
2021/05/28 Python