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编程给numpy矩阵添加一列方法示例
Dec 04 Python
Win10下python 2.7.13 安装配置方法图文教程
Sep 18 Python
浅谈python连续赋值可能引发的错误
Nov 10 Python
解析Python的缩进规则的使用
Jan 16 Python
PyQt5显示GIF图片的方法
Jun 17 Python
TensorFlow实现简单的CNN的方法
Jul 18 Python
Python命令行参数解析工具 docopt 安装和应用过程详解
Sep 26 Python
深入浅析Python 中的sklearn模型选择
Oct 12 Python
Python scrapy增量爬取实例及实现过程解析
Dec 24 Python
Pytorch 保存模型生成图片方式
Jan 10 Python
Python虚拟环境的创建和使用详解
Sep 07 Python
使用py-spy解决scrapy卡死的问题方法
Sep 29 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冒泡排序算法代码详细解读
2011/07/17 PHP
匹配csdn用户数据库与官方用户的重合度并将重叠部分的用户筛选出来
2011/12/25 PHP
PHP中数组的分组排序实例
2014/06/01 PHP
总结PHP代码规范、流程规范、git规范
2018/06/18 PHP
PHP的mysqli_sqlstate()函数讲解
2019/01/23 PHP
PHP反射原理与用法深入分析
2019/09/28 PHP
jQuery动态显示和隐藏datagrid中的某一列的方法
2013/12/11 Javascript
jQuery的css()方法用法实例
2014/12/24 Javascript
JavaScript实现的链表数据结构实例
2015/04/02 Javascript
JavaScript获得指定对象大小的方法
2015/07/01 Javascript
Javascript中的getter和setter初识
2017/08/17 Javascript
Vue实现web分页组件详解
2017/11/28 Javascript
浅谈vue自定义全局组件并通过全局方法 Vue.use() 使用该组件
2017/12/07 Javascript
原生JS实现的放大镜特效示例【测试可用】
2018/12/08 Javascript
深入理解vue-class-component源码阅读
2019/02/18 Javascript
实例分析Array.from(arr)与[...arr]到底有何不同
2019/04/09 Javascript
在vue中使用Base64转码的案例
2020/08/07 Javascript
[50:04]DOTA2上海特级锦标赛D组小组赛#2 Liquid VS VP第二局
2016/02/28 DOTA
python连接mysql数据库示例(做增删改操作)
2013/12/31 Python
Python六大开源框架对比
2015/10/19 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
PyCharm安装Markdown插件的两种方法
2019/06/24 Python
Django框架HttpRequest对象用法实例分析
2019/11/01 Python
Pandas+Matplotlib 箱式图异常值分析示例
2019/12/09 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Django URL参数Template反向解析
2020/11/24 Python
Hotels.com加拿大:领先的在线住宿网站
2018/10/05 全球购物
Perfume’s Club中文官网:西班牙美妆在线零售品牌
2020/08/24 全球购物
网络编程中设计并发服务器,使用多进程与多线程,请问有什么区别?
2016/03/27 面试题
承认错误的检讨书
2014/01/30 职场文书
流动人口婚育证明范本
2014/09/26 职场文书
工作业绩不及格检讨书
2014/10/28 职场文书
公务员个人总结
2015/02/12 职场文书
公司安全管理制度范本
2015/08/05 职场文书
查看nginx配置文件路径和资源文件路径的方法
2021/03/31 Servers
springboot读取nacos配置文件
2022/05/20 Java/Android