元组:不可修改的序列

tuple(读音是 /tuːpəl/ 或 /tʌpəl/)与列表一样,元组也是序列,唯一的差别在于元组是不能修改的(你可能注意到了,字符串也不能修改)。元组语法很简单,只要将一些值用逗号分隔,就能自动创建一个元组。

In [34]: 1,2,3
Out[34]: (1, 2, 3)

元组还可用圆括号括起(这也是通常采用的做法)。

In [35]: (1,2,3)
Out[35]: (1, 2, 3)

空元组用两个不包含任何内容的圆括号表示。

In [36]: ()
Out[36]: ()

如何表示只包含一个值的元组呢?这有点特殊:虽然只有一个值,也必须在它后面加上逗号。

In [38]: 21
Out[38]: 21In [39]: (21)
Out[39]: 21In [40]: 21,
Out[40]: (21,)In [41]: (21,)
Out[41]: (21,)

最后两个示例创建的元组长度为1,而第一个和第二个示例根本没有创建元组。

逗号至关重要,仅将值用圆括号括起不管用:(21)与21完全等效。但仅仅加上一个逗号,就能完全改变表达式的值。

In [42]: 3 * (40 + 2)
Out[42]: 126In [43]: 3 * (40 + 2,)
Out[43]: (42, 42, 42)

函数tuple(与list一样,tuple实际上也不是函数,而是类型。不过眼下我们不用考虑这些。)的工作原理与list很像:它将一个序列作为参数,并将其转换为元组 。如果参数已经是元组,就原封不动地返回它。

In [45]: tuple([1,2,3])
Out[45]: (1, 2, 3)In [46]: tuple("123")
Out[46]: ('1', '2', '3')In [47]: tuple((1,2,3))
Out[47]: (1, 2, 3)

因为元组不可修改,所以除创建和访问其元素外,可对元组执行的操作不多。元组的创建及其元素的访问方式与其他序列相同。

In [48]: x = 1,2,3In [49]: x
Out[49]: (1, 2, 3)In [50]: x[1]
Out[50]: 2In [51]: x[0:2]
Out[51]: (1, 2)

元组的切片也是元组,就像列表的切片也是列表一样。

为何要熟悉元组呢?原因有以下两个。

  • 它们用作映射中的键(以及集合的成员),而列表不行。
  • 有些内置函数和方法返回元组,这意味着必须跟它们打交道。

参考资料

《Python基础教程(第三版)》,人民邮电出版社

Python 学习之元组相关推荐

  1. Python 学习笔记 元组 xxxxxxx XXXXXXXXXX

    Python 学习笔记 元组 xxxxxxx XXXXXXXXXX print("=" * 20) dimensions = (200, 50) print(dimensions[ ...

  2. Python学习笔记——元组

    目录 元组 元组的创建 元组数据的添加 元组的删除 元组 在python中是没有数组这个概念的,因为python的变量没有数据类型,而数组里存放的必须是同种类型的数据,所以准确的来说,在python中 ...

  3. Python学习week4-python元组与字符串

    1.python数据结构之元组 1.1.元组特点 (1)元组特点:有序,不可变:可以理解为不可变的列表: (2)元组与列表的不同: # 元组tuple,可hash,不可变数据类型,()表示:一般元组用 ...

  4. Python学习5 元组基础知识和常用函数

    元组概念 元组:a=(1,23) 列表:a= [1,23] 创建和访问元组 Python 的元组与列表类似,不同之处在于tuple被创建后就不能对其进行修改,类似字符串. 元组与列表类似,也用整数来对 ...

  5. Python学习:元组

    一.元组的定义 定义元组使用小括号,且逗号隔开各个数据,数据可以是不同的数据类型.如果定义的元组只有一个数据,那么这个数据后面也要添加逗号,否则数据类型为唯一的这个数据的数据类型.元组内的数据是不能够 ...

  6. python学习-列表解析、字典解析

    文章目录 扩展链接 列表解析 字典解析 扩展链接 一些基础数据类型的博文链接: python学习-数据类型 列表 python学习-数据类型 字典 python学习-数据类型 元组 python学习- ...

  7. python列表和元组的应用_python学习笔记之列表(list)与元组(tuple)详解

    前言 最近重新再看python的基础知识,感觉自己还是对于这些知识很陌生,需要用的时候还是需要翻书查阅,还是先注重基础吧--我要重新把python的教程阅读一遍,把以前自己忽略的部分学习,加强练习和记 ...

  8. Python学习笔记之元组

    1.什么是元组:列表非常适合用于存储在程序运行期间可能变化的数据集.列表是可以修改的,然而,有时候你需要创建一系列不可修改的元素,元组可以满足这种需求.Python将不能修改的值称为不可变的,而不可变 ...

  9. Python学习(二)列表,for循环,切片,元组

    文章目录 Python学习(二) 列表 访问列表元素 修改列表元素 在列表中插入元素 在列表末尾插入元素 在列表中插入元素 删除列表元素 使用del语句删除元素 使用`pop()`删除元素 根据值删除 ...

最新文章

  1. 数据结构练习 00-自测1. 打印沙漏(20)
  2. 学计算机学体育生闺女,数学老师转行教体育 他有4个特别的“女儿”
  3. linux下×××postfix
  4. 最高的分数(信息学奥赛一本通-T1062)
  5. 快手直播伴侣因计算机丢失,在电脑上安装快手直播伴侣,却说因为计算机丢失MSVCP140.DOLL怎么办???...
  6. C语言学习笔记---fgets()函数和fputs()函数
  7. ASP.NET性能监控和优化入门
  8. Scala的sealed关键字
  9. AtCoder Grand Contest 028题解
  10. Atitit dubbo使用总结 attilax总结 艾龙 总结 1. 概念 1 1.1. Dubbo提供的注册中心有如下几种类型可供选择: 2 1.1.1. Multicast注册中心 2 1.1
  11. word背景颜色怎么设置绿色?把word背景调成绿色
  12. 微信第三方开平台代公众号发起网页授权 获取用户信息 openid,uninoid
  13. HCIP路由交换的三门考试
  14. 微信小程序云开发之cms开发
  15. 缓冲区(buffer)与缓存(cache)
  16. 龙芯中科科创板上市:市值357亿 成国产CPU第一股
  17. 亲测快捷高效的编写测试用例方法
  18. java修炼三层境界
  19. 国家邮政局出马,菜鸟顺丰大战落幕
  20. 北京超声刀治疗痘印有效吗

热门文章

  1. hdu-4510 小Q系列故事——为什么时光不能倒流(比赛被虐的一道水题)
  2. hdu 2112 HDU Today 最短路(Dijkstra算法)
  3. Golang的模板与渲染
  4. kong plugin rate limiting
  5. vscode解决java无法输入(scanner)问题
  6. 3、Python 基础类型 -- List 列表类型
  7. 静态call 动态call LINK
  8. 微信自动关闭内置浏览器页面,返回公众号窗口 WeixinJSBridge.call('closeWindow')
  9. Python 装饰器原理和基本实现
  10. Linux系统挂载操作mount详解