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实现图片处理和特征提取详解
Nov 13 Python
Python3爬虫学习入门教程
Dec 11 Python
python linecache 处理固定格式文本数据的方法
Jan 08 Python
提升Python程序性能的7个习惯
Apr 14 Python
Python-while 计算100以内奇数和的方法
Jun 11 Python
Django 限制访问频率的思路详解
Dec 24 Python
Python中使用threading.Event协调线程的运行详解
May 02 Python
Python sorted对list和dict排序
Jun 09 Python
python如何编写类似nmap的扫描工具
Nov 06 Python
matplotlib交互式数据光标实现(mplcursors)
Jan 13 Python
详解运行Python的神器Jupyter Notebook
Jun 03 Python
python字符串的一些常见实用操作
Apr 06 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
一些操作和快捷键的理解和讨论
2020/03/04 星际争霸
PHP中全局变量global和$GLOBALS[]的区别分析
2012/08/06 PHP
ThinkPHP3.1的Widget新用法
2014/06/19 PHP
php实现扫描二维码根据浏览器类型访问不同下载地址
2014/10/15 PHP
IE6,IE7下js动态加载图片不显示错误
2010/07/17 Javascript
两个Javascript小tip资料
2010/11/23 Javascript
简单几行JS Code实现IE邮件转发新浪微博
2013/07/03 Javascript
jQuery中toggleClass()方法用法实例
2015/01/05 Javascript
Javascript技术栈中的四种依赖注入详解
2016/02/23 Javascript
使用PHP+JavaScript将HTML页面转换为图片的实例分享
2016/04/18 Javascript
老生常谈js动态添加事件--- 事件委托
2016/07/19 Javascript
Bootstrap基本样式学习笔记之按钮(4)
2016/12/07 Javascript
jQuery实现的手风琴侧边菜单效果
2017/03/29 jQuery
ES6中的箭头函数实例详解
2017/04/06 Javascript
[js高手之路]从原型链开始图解继承到组合继承的产生详解
2017/08/28 Javascript
vue中使用cropperjs的方法
2018/03/01 Javascript
vue 实现全选全不选的示例代码
2018/03/29 Javascript
vue进入页面时滚动条始终在底部代码实例
2019/03/26 Javascript
vuex 多模块时 模块内部的mutation和action的调用方式
2020/07/24 Javascript
Python实现基于权重的随机数2种方法
2015/04/28 Python
python高手之路python处理excel文件(方法汇总)
2016/01/07 Python
基于数据归一化以及Python实现方式
2018/07/11 Python
Flask框架使用DBUtils模块连接数据库操作示例
2018/07/20 Python
解决运行django程序出错问题 'str'object has no attribute'_meta'
2020/07/15 Python
Python常驻任务实现接收外界参数代码解析
2020/07/21 Python
高中毕业自我鉴定
2013/12/19 职场文书
运动会稿件100字
2014/02/21 职场文书
市场营销大学生职业规划书
2014/02/25 职场文书
答谢词范文
2015/01/05 职场文书
商场收银员岗位职责
2015/04/07 职场文书
2015年度个人思想工作总结
2015/04/08 职场文书
清明节主题班会
2015/08/14 职场文书
Golang标准库syscall详解(什么是系统调用)
2021/05/25 Golang
pytorch锁死在dataloader(训练时卡死)
2021/05/28 Python
MySQL如何快速创建800w条测试数据表
2022/03/17 MySQL
斗罗大陆八大特殊魂兽,龙族始祖排榜首,第五最残忍(翠魔鸟)
2022/03/18 国漫