Python元组 tuple的概念与基本操作详解【定义、创建、访问、计数、推导式等】


Posted in Python onOctober 30, 2019

本文实例讲述了Python元组 tuple的概念与基本操作。分享给大家供大家参考,具体如下:

元组 tuple

元组 tuple的定义

列表属于可变序列,可以任意修改列表中的元素。元组属于不可变序列,不能修改元组中的
元素。因此,元组没有增加元素、修改元素、删除元素相关的方法。
因此,我们只需要学习元组的创建和删除,元组中元素的访问和计数即可。元组支持如
下操作:

  1. 索引访问
  2. 切片操作
  3. 连接操作
  4. 成员关系操作
  5. 比较运算操作
  6. 计数:元组长度 len()、最大值 max()、最小值 min()、求和 sum()等。

元组的创建

  1. 通过()创建元组。小括号可以省略。
a = (10,20,30) 或者 a = 10,20,30

如果元组只有一个元素,则必须后面加逗号。这是因为解释器会把(1)解释为整数 1,(1,)
解释为元组。

>>> a = (1)
>>> type(a)
<class 'int'>
>>> a = (1,) #或者 a = 1,
>>> type(a)
<class 'tuple'>
  1. 通过 tuple()创建元组
    tuple(可迭代的对象)
    例如:
b = tuple() #创建一个空元组对象
b = tuple("abc")
b = tuple(range(3))
b = tuple([2,3,4])

总结:
tuple()可以接收列表、字符串、其他序列类型、迭代器等生成元组。
list()可以接收元组、字符串、其他序列类型、迭代器等生成列表。

元组的元素访问和计数

1. 元组的元素不能修改

>>> a = (20,10,30,9,8)
>>> a[3]=33
Traceback (most recent call last):
File "<pyshell#313>", line 1, in <module>
a[3]=33
TypeError: 'tuple' object does not support item assignment

2. 元组的元素访问和列表一样,只不过返回的仍然是元组对象。

>>> a = (20,10,30,9,8)
>>> a[1]
10
>>> a[1:3]
(10, 30)
>>> a[:4]
(20, 10, 30, 9)

3. 列表关于排序的方法 list.sorted()是修改原列表对象,元组没有该方法。如果要对元组排

序,只能使用内置函数 sorted(tupleObj),并生成新的列表对象。

>>> a = (20,10,30,9,8)
>>> sorted(a)
[8, 9, 10, 20, 30]

zip

zip(列表 1,列表 2,…)将多个列表对应位置的元素组合成为元组,并返回这个 zip 对象。

>>> a = [10,20,30]
>>> b = [40,50,60]
>>> c = [70,80,90]
>>> d = zip(a,b,c)
>>> list(d)
[(10, 40, 70), (20, 50, 80), (30, 60, 90)]

生成器推导式创建元组

从形式上看,生成器推导式与列表推导式类似,只是生成器推导式使用小括号。列表推
导式直接生成列表对象,生成器推导式生成的不是列表也不是元组,而是一个生成器对象。
我们可以通过生成器对象,转化成列表或者元组。也可以使用生成器对象的__next__()
方法进行遍历,或者直接作为迭代器对象来使用。不管什么方式使用,元素访问结束后,如
果需要重新访问其中的元素,必须重新创建该生成器对象。
【操作】生成器的使用测试

>>> s = (x*2 for x in range(5))
>>> s
<generator object <genexpr> at 0x0000000002BDEB48>
>>> tuple(s)
(0, 2, 4, 6, 8)
>>> list(s) #只能访问一次元素。第二次就为空了。需要再生成一次
[]
>>> s
<generator object <genexpr> at 0x0000000002BDEB48>
>>> tuple(s)
()
>>> s = (x*2 for x in range(5))
>>> s.__next__()
0
>>> s.__next__()
2
>>> s.__next__()
4

元组总结

  1. 元组的核心特点是:不可变序列。
  2. 元组的访问和处理速度比列表快。
  3. 与整数和字符串一样,元组可以作为字典的键,列表则永远不能作为字典的键使用。

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

Python 相关文章推荐
简单介绍Python中的try和finally和with方法
May 05 Python
Python中的descriptor描述器简明使用指南
Jun 02 Python
Python使用修饰器执行函数的参数检查功能示例
Sep 26 Python
python3+PyQt5+Qt Designer实现堆叠窗口部件
Apr 20 Python
python和shell获取文本内容的方法
Jun 05 Python
Python字符串内置函数功能与用法总结
Apr 16 Python
利用pyinstaller打包exe文件的基本教程
May 02 Python
Python破解BiliBili滑块验证码的思路详解(完美避开人机识别)
Feb 17 Python
python中sort sorted reverse reversed函数的区别说明
May 11 Python
Pycharm修改python路径过程图解
May 22 Python
python3 googletrans超时报错问题及翻译工具优化方案 附源码
Dec 23 Python
如何在pycharm中快捷安装pip命令(如pygame)
May 31 Python
解决python 上传图片限制格式问题
Oct 30 #Python
Python字典的概念及常见应用实例详解
Oct 30 #Python
Python集合基本概念与相关操作实例分析
Oct 30 #Python
python opencv将表格图片按照表格框线分割和识别
Oct 30 #Python
python 使用pygame工具包实现贪吃蛇游戏(多彩版)
Oct 30 #Python
python常见字符串处理函数与用法汇总
Oct 30 #Python
pygame库实现俄罗斯方块小游戏
Oct 29 #Python
You might like
发款php蜘蛛统计插件只要有mysql就可用
2010/10/12 PHP
web server使用php生成web页面的三种方法总结
2013/10/28 PHP
php实现文件编码批量转换
2014/03/10 PHP
php提示Failed to write session data错误的解决方法
2014/12/17 PHP
php使用自带dom扩展进行元素匹配的原理解析
2020/05/29 PHP
js技巧--转义符&quot;\&quot;的妙用
2007/01/09 Javascript
使用prototype.js进行异步操作
2007/02/07 Javascript
Web Inspector:关于在 Sublime Text 中调试Js的介绍
2013/04/18 Javascript
文本框倒叙输入让输入框的焦点始终在最开始的位置
2014/09/01 Javascript
在Node.js中使用Javascript Generators详解
2016/05/05 Javascript
基于JQuery及AJAX实现名人名言随机生成器
2017/02/10 Javascript
NodeJS仿WebApi路由示例
2017/02/28 NodeJs
vue2.0中vue-cli实现全选、单选计算总价格的实例代码
2017/07/18 Javascript
vue-cli的eslint相关用法
2017/09/29 Javascript
js数据类型检测总结
2018/08/05 Javascript
详解webpack自定义loader初探
2018/08/29 Javascript
jQuery访问json文件中数据的方法示例
2019/01/28 jQuery
如何正确理解vue中的key详解
2019/11/02 Javascript
JS在Array数组中按指定位置删除或添加元素对象方法示例
2019/11/19 Javascript
js实现单元格拖拽效果
2020/02/10 Javascript
Python单元测试框架unittest简明使用实例
2015/04/13 Python
Django日志模块logging的配置详解
2017/02/14 Python
树莓派用python中的OpenCV输出USB摄像头画面
2019/06/22 Python
详解BeautifulSoup获取特定标签下内容的方法
2020/12/07 Python
美国大码时尚女装购物网站:ELOQUII
2017/12/28 全球购物
BASIC HOUSE官方旗舰店:韩国著名的服装品牌
2018/09/27 全球购物
中学生评语大全
2014/04/18 职场文书
拔河比赛口号
2014/06/10 职场文书
材料成型及控制工程专业求职信
2014/06/19 职场文书
2014年教学工作总结
2014/11/13 职场文书
年终工作总结范文2014
2014/11/27 职场文书
西安导游词
2015/02/12 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
解决xampp安装后Apache无法启动
2022/03/21 Servers
Python实现信息管理系统
2022/06/05 Python
python中使用redis用法详解
2022/12/24 Redis