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 中文乱码问题深入分析
Mar 13 Python
python内存管理分析
Apr 08 Python
Eclipse和PyDev搭建完美Python开发环境教程(Windows篇)
Nov 16 Python
python 系统调用的实例详解
Jul 11 Python
一个月入门Python爬虫学习,轻松爬取大规模数据
Jan 03 Python
Python二进制串转换为通用字符串的方法
Jul 23 Python
Python循环实现n的全排列功能
Sep 16 Python
通过python3实现投票功能代码实例
Sep 26 Python
浅析python,PyCharm,Anaconda三者之间的关系
Nov 27 Python
python+selenium+PhantomJS抓取网页动态加载内容
Feb 25 Python
基于python实现把json数据转换成Excel表格
May 07 Python
Python同时迭代多个序列的方法
Jul 28 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
overlord人气高涨,却被菲利普频繁举报,第四季很难在国内上映
2020/05/06 日漫
PHP下对数组进行排序的函数
2010/08/08 PHP
深入解析PHP的引用计数机制
2013/06/14 PHP
php获取一个变量的名字的方法
2014/09/05 PHP
php中mkdir函数用法实例分析
2014/11/15 PHP
Yii不依赖Model的表单生成器用法实例
2014/12/04 PHP
PHP实现类似于C语言的文件读取及解析功能
2017/09/01 PHP
php基于协程实现异步的方法分析
2019/07/17 PHP
List the Codec Files on a Computer
2007/06/11 Javascript
JavaScript 应用类库代码
2008/06/02 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
JavaScript每天必学之基础知识
2016/09/17 Javascript
JavaScript利用正则表达式替换字符串中的内容
2016/12/12 Javascript
VUE axios发送跨域请求需要注意的问题
2017/07/06 Javascript
微信小程序项目实践之验证码倒计时功能
2018/07/18 Javascript
详解Axios 如何取消已发送的请求
2018/10/20 Javascript
使用Vue.js 和Chart.js制作绚丽多彩的图表
2019/06/15 Javascript
使用p5.js实现动态GIF图片临摹重现
2019/10/23 Javascript
vue如何在用户要关闭当前网页时弹出提示的实现
2020/05/31 Javascript
vue3+typeScript穿梭框的实现示例
2020/12/29 Vue.js
Python中optparse模块使用浅析
2015/01/01 Python
django实现登录时候输入密码错误5次锁定用户十分钟
2017/11/05 Python
python交互式图形编程实例(二)
2017/11/17 Python
Python闭包之返回函数的函数用法示例
2018/01/27 Python
详谈Python中列表list,元祖tuple和numpy中的array区别
2018/04/18 Python
python基于递归解决背包问题详解
2019/07/03 Python
基于Pytorch SSD模型分析
2020/02/18 Python
python中pyqtgraph知识点总结
2021/01/26 Python
怎样在程序里获得一个空指针
2015/01/24 面试题
上课不认真检讨书
2014/09/17 职场文书
2014教师年度思想工作总结
2014/11/10 职场文书
2014年机关工会工作总结
2014/12/19 职场文书
邀请函的格式
2015/01/30 职场文书
李白故里导游词
2015/02/12 职场文书
搞笑的婚礼主持词
2015/06/29 职场文书
Python使用PyYAML库读写yaml文件的方法
2022/04/06 Python