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 相关文章推荐
PyCharm使用教程之搭建Python开发环境
Jun 07 Python
遍历python字典几种方法总结(推荐)
Sep 11 Python
浅谈五大Python Web框架
Mar 20 Python
Python学习之用pygal画世界地图实例
Dec 07 Python
解决python 无法加载downsample模型的问题
Oct 25 Python
Python根据欧拉角求旋转矩阵的实例
Jan 28 Python
Keras Convolution1D与Convolution2D区别说明
May 22 Python
python中什么是面向对象
Jun 11 Python
安装并免费使用Pycharm专业版(学生/教师)
Sep 24 Python
如何在Win10系统使用Python3连接Hive
Oct 15 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
Jan 05 Python
Python中的流程控制详解
Feb 18 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
粗略计算在线时间,bug:ip相同
2006/12/09 PHP
PHP验证码类代码( 最新修改,完全定制化! )
2010/12/02 PHP
PHP Global变量定义当前页面的全局变量实现探讨
2013/06/05 PHP
PHP使用递归方式列出当前目录下所有文件的方法
2015/06/02 PHP
PHP滚动日志的代码实现
2015/06/10 PHP
javascript显示隐藏层比较不错的方法分析
2008/09/30 Javascript
EasyUi tabs的高度与宽度根据IE窗口的变化自适应代码
2010/10/26 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
javascript实现字符串反转的方法
2015/02/05 Javascript
JavaScript实现的类字典插入或更新方法实例
2015/07/10 Javascript
node.js下LDAP查询实例分享
2015/09/30 Javascript
JavaScript 深层克隆对象详解及实例
2016/11/03 Javascript
基于Bootstrap 3 JQuery及RegExp的表单验证功能
2017/02/16 Javascript
Vue2.0实现1.0的搜索过滤器功能实例代码
2017/03/20 Javascript
Mint UI实现A-Z字母排序的城市选择列表
2018/12/28 Javascript
python设置windows桌面壁纸的实现代码
2013/01/28 Python
python通过定义一个类实例作为ftp回调方法
2015/05/04 Python
python文件操作相关知识点总结整理
2016/02/22 Python
Python读取Pickle文件信息并计算与当前时间间隔的方法分析
2019/01/30 Python
python文件读写代码实例
2019/10/21 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
Python3与fastdfs分布式文件系统如何实现交互
2020/06/23 Python
Python+Dlib+Opencv实现人脸采集并表情判别功能的代码
2020/07/01 Python
利用python查看数组中的所有元素是否相同
2021/01/08 Python
德国玩具商店:Planet Happy DE
2021/01/16 全球购物
幼儿园实习自我鉴定
2013/12/15 职场文书
迟到检讨书1000字
2014/01/15 职场文书
幼儿园教师教育感言
2014/02/28 职场文书
房产买卖委托公证书
2014/04/04 职场文书
毕业评语大全
2014/05/04 职场文书
实验室的标语
2014/06/20 职场文书
民族学专业大学生职业规划范文:清晰未来的构想
2014/09/20 职场文书
大学生入党自荐书
2015/03/05 职场文书
2015年大学班级工作总结
2015/04/28 职场文书
亮剑观后感300字
2015/06/05 职场文书
mysql5.7的安装及Navicate长久免费使用的实现过程
2021/11/17 MySQL