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连接sql server乱码的解决方法
Jan 28 Python
Python socket.error: [Errno 98] Address already in use的原因和解决方法
Aug 25 Python
用Python进行基础的函数式编程的教程
Mar 31 Python
利用Python爬取可用的代理IP
Aug 18 Python
python shell根据ip获取主机名代码示例
Nov 25 Python
python异步存储数据详解
Mar 19 Python
Python 使用 docopt 解析json参数文件过程讲解
Aug 13 Python
Pytorch中的自动求梯度机制和Variable类实例
Feb 29 Python
Python matplotlib读取excel数据并用for循环画多个子图subplot操作
Jul 14 Python
详解anaconda离线安装pytorchGPU版
Sep 08 Python
Python GUI之tkinter窗口视窗教程大集合(推荐)
Oct 20 Python
ASP.NET Core中的配置详解
Feb 05 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
跟我学小偷程序之成功偷取首页(第三天)
2006/10/09 PHP
php中的观察者模式
2010/03/24 PHP
dedecms系统的广告设置代码 基础版本
2010/04/09 PHP
zend framework配置操作数据库实例分析
2012/12/06 PHP
Yii结合CKEditor实现图片上传功能
2014/06/13 PHP
PHP截取指定图片大小的方法
2014/12/10 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP中让curl支持sock5的代码实例
2015/01/21 PHP
YII CLinkPager分页类扩展增加显示共多少页
2016/01/29 PHP
PHP第三方登录―QQ登录实现方法
2017/02/06 PHP
Javascript客户端将指定区域导出到Word、Excel的代码
2008/10/22 Javascript
js tab 选项卡
2009/04/26 Javascript
jQuery DOM操作小结与实例
2010/01/07 Javascript
JS实现至少包含字母、大小写数字、字符的密码等级的两种方法
2015/02/03 Javascript
解析javascript图片懒加载与预加载的分析总结
2016/10/27 Javascript
原生JS实现图片无缝滚动方法(附带封装的运动框架)
2017/10/01 Javascript
为vue-router懒加载时下载js的过程中添加loading提示避免无响应问题
2018/04/03 Javascript
Python3.7 dataclass使用指南小结
2019/02/22 Python
Python嵌套式数据结构实例浅析
2019/03/05 Python
Pytorch 实现权重初始化
2019/12/31 Python
PythonPC客户端自动化实现原理(pywinauto)
2020/05/28 Python
python读取hdfs上的parquet文件方式
2020/06/06 Python
如何使用html5与css3完成google涂鸦动画
2012/12/16 HTML / CSS
mui几种页面跳转方式对比总结概括
2017/08/18 HTML / CSS
日本乐天德国站:Rakuten.de
2019/05/16 全球购物
SK-II神仙水美国官网:SK-II美国
2020/02/25 全球购物
平面设计岗位职责
2013/12/14 职场文书
校园创业策划书
2014/01/14 职场文书
小学生安全保证书
2014/02/01 职场文书
母亲节演讲稿
2014/05/27 职场文书
村创先争优活动总结
2014/08/28 职场文书
怒海潜将观后感
2015/06/11 职场文书
《生物入侵者》教学反思
2016/02/16 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
教你如何使用Python下载B站视频的详细教程
2021/04/29 Python
python中使用 unittest.TestCase单元测试的用例详解
2021/08/30 Python