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从有道词典网页获取单词翻译
Jul 03 Python
利用numpy+matplotlib绘图的基本操作教程
May 03 Python
用python实现对比两张图片的不同
Feb 05 Python
python实现数据写入excel表格
Mar 25 Python
Python实现的根据文件名查找数据文件功能示例
May 02 Python
详解Python下ftp上传文件linux服务器
Jun 21 Python
pandas将numpy数组写入到csv的实例
Jul 04 Python
Python测试网络连通性示例【基于ping】
Aug 03 Python
Python3爬虫学习之MySQL数据库存储爬取的信息详解
Dec 12 Python
Django model反向关联名称的方法
Dec 15 Python
python如何使用socketserver模块实现并发聊天
Dec 14 Python
python利用os模块编写文件复制功能——copy()函数用法
Jul 13 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
全国FM电台频率大全 - 14 江西省
2020/03/11 无线电
文件上传的实现
2006/10/09 PHP
利用static实现表格的颜色隔行显示的代码
2007/09/02 PHP
6种php上传图片重命名的方法实例
2013/11/04 PHP
php中使用Ajax时出现Error(c00ce56e)的详细解决方案
2014/11/03 PHP
prototype class详解
2006/09/07 Javascript
Javascript中的delete介绍
2012/09/02 Javascript
基于jquery的网站幻灯片切换效果焦点图代码
2013/09/15 Javascript
JQuery中两个ul标签的li互相移动实现方法
2015/05/18 Javascript
DOM事件阶段以及事件捕获与事件冒泡先后执行顺序(图文详解)
2015/08/18 Javascript
Bootstrap弹出框modal上层的输入框不能获得焦点问题的解决方法
2016/12/13 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
为你的微信小程序体积瘦身详解
2017/05/20 Javascript
用 Vue.js 递归组件实现可折叠的树形菜单(demo)
2017/12/25 Javascript
javascript实现最长公共子序列实例代码
2018/02/05 Javascript
微信小程序实现渐入渐出动画效果
2019/06/13 Javascript
[20:21]《一刀刀一天》第十六期:TI国际邀请赛正式打响,总奖金超过550万
2014/05/23 DOTA
[02:42]DOTA2城市挑战赛收官在即 四强之争风起云涌
2018/06/05 DOTA
Tensorflow简单验证码识别应用
2017/05/25 Python
对pytorch网络层结构的数组化详解
2018/12/08 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
前端实现打印图像功能
2019/08/27 HTML / CSS
recorder.js 基于Html5录音功能的实现
2020/05/26 HTML / CSS
英国电子专家:maplin
2019/09/04 全球购物
MYSQL基础面试题
2012/05/13 面试题
经济信息管理专业大学生求职信
2013/09/27 职场文书
继承公证书样本
2014/04/04 职场文书
股权转让协议书
2014/04/12 职场文书
大学自主招生推荐信
2014/05/10 职场文书
理发店策划方案
2014/06/05 职场文书
幼儿园教师师德师风演讲稿:我自豪我是一名幼师
2014/09/10 职场文书
庆祝儿童节标语
2014/10/09 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
户外活动总结
2015/02/04 职场文书
工作年限证明模板
2015/06/15 职场文书
创业计划书详解
2019/07/19 职场文书