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中由于logging模块误用导致的内存泄露
Apr 23 Python
python解决网站的反爬虫策略总结
Oct 26 Python
Python通过调用mysql存储过程实现更新数据功能示例
Apr 03 Python
python 使用sys.stdin和fileinput读入标准输入的方法
Oct 17 Python
python面试题Python2.x和Python3.x的区别
May 28 Python
Python queue队列原理与应用案例分析
Sep 27 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
Python figure参数及subplot子图绘制代码
Apr 18 Python
如何在windows下安装配置python工具Ulipad
Oct 27 Python
Python系统公网私网流量监控实现流程
Nov 23 Python
关于Python错误重试方法总结
Jan 03 Python
python和Appium的移动端多设备自动化测试框架
Apr 26 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 接入微信扫码支付总结(总结篇)
2016/11/03 PHP
Span元素的width属性无效果原因及解决方案
2010/01/15 Javascript
深入理解JavaScript系列(16) 闭包(Closures)
2012/04/12 Javascript
详解JavaScript的Date对象(制作简易钟表)
2020/04/07 Javascript
浅谈javascript中的加减时间
2016/07/12 Javascript
jquery 点击元素后,滚动条滚动至该元素位置的方法
2016/08/05 Javascript
详谈JavaScript的闭包及应用
2017/01/17 Javascript
JS控件bootstrap datepicker使用方法详解
2017/03/25 Javascript
vue-loader教程介绍
2017/06/14 Javascript
BootStrap导航栏问题记录
2017/07/31 Javascript
利用百度地图API获取当前位置信息的实例
2017/11/06 Javascript
响应式框架Bootstrap栅格系统的实例
2017/12/19 Javascript
vue 自定义全局方法,在组件里面的使用介绍
2018/02/28 Javascript
vue.js在标签属性中插入变量参数的方法
2018/03/06 Javascript
Vue数据监听方法watch的使用
2018/03/28 Javascript
vue地区选择组件教程详解
2018/05/04 Javascript
VUE基于NUXT的SSR 服务端渲染
2018/11/30 Javascript
JS div匀速移动动画与变速移动动画代码实例
2019/03/26 Javascript
vue+element UI实现树形表格
2020/12/29 Vue.js
python logging重复记录日志问题的解决方法
2018/07/12 Python
python隐藏终端执行cmd命令的方法
2019/06/24 Python
解决Django一个表单对应多个按钮的问题
2019/07/18 Python
Python实现一个数组除以一个数的例子
2019/07/20 Python
django框架cookie和session用法实例详解
2019/12/10 Python
浅谈cv2.imread()和keras.preprocessing中的image.load_img()区别
2020/06/12 Python
python中format函数如何使用
2020/06/22 Python
英国Lookfantastic中文网站:护肤品美妆美发购物(英国直邮)
2020/04/27 全球购物
软件工程师面试题
2012/06/25 面试题
前台文员我鉴定
2014/01/12 职场文书
如何写自我评价?自我评价写什么好?
2014/03/14 职场文书
《她是我的朋友》教学反思
2014/04/26 职场文书
师德承诺书
2015/01/20 职场文书
vue backtop组件的实现完整代码
2021/04/07 Vue.js
Python如何把不同类型数据的json序列化
2021/04/30 Python
解决Goland 同一个package中函数互相调用的问题
2021/05/06 Golang
win11系统中dhcp服务异常什么意思? Win11 DHCP服务异常修复方法
2022/04/08 数码科技