Python数据结构之二——tuple(元组)
Python版本:3.6.2 操作系统:Windows 作者:SmallWZQ
列表和元组是Python中最常见的内建序列。元组与列表一样,但是tuple一旦创建就不能修改。创建元组的语法非常简单,示例如下:
>>> 1,2,3
(1,2,3)
如果您用逗号分隔了一些值,那么您就自动创建了tuple。一旦创建,tuple内容就是固定的。
tuple格式如下:
t = (1,),小括号。
1.元组索引
tuple创建后,不能通过append()、pop()、insert()、remove()等方法改变tuple的内容。然而tuple是可以被索引访问的,即获取tuple元素的方法与list类似,但元素值不可被修改。
>>> t = (1,2,3,4,5,6)
>>> t[0]
1
如代码所示,tuple可以正常地通过索引(t[0],t[-1]......)访问元素值。
2.元组陷阱
创建元组时,需要特别注意元组中只有一个值的情况。Python的数据类型包括tuple、int等等。因此,当tuple中包含一个元素的时候,不能遗漏逗号。
>>> t = (56)
>>> t
56
>>> t = (56,)
>>> t
(56,)
注:定义一个空的tuple,可以写成()。
3.元组方法
由于元组是不可变的,所以元组支持的方法很少,与list无法相提并论。tuple仅仅支持index()、count()等极少数的方法。话不多说,直接上图。

图1 tuple方法介绍
4.tuple()
与list()一样,功能:以一个序列作为参数并把它转换为tuple。
>>> tuple([1,2,3])
(1,2,3)
>>> tuple('abc')
('a','b','c')
>>> tuple((1,2,3))
(1,2,3)
5.不可替代性
tuple是不可变序列,它有存在的必要吗?它的意义在哪?......面对这一系列的疑问,我也查过很多的资料,包括Python基础教程、廖晓峰教程等等。tuple不可替代的原因:1.安全性;2.键(key)。
因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。(来自廖老师的教程)
tuple可以在映射(和集合的成员)中当作键(key)使用——而列表不行。
tuple作为很多内建函数和方法的返回值存在,也就是说您必须对元组进行处理。
>>>def f():
return 2,3
>>>f()
(2,3)
返回值为元组类型
tuple总结
1.tuple是不可变的序列。
Python数据结构之二——tuple(元组)的更多相关文章
- python数据结构(二)------元组
元组是不可变序列,因此,元组的操作非常简单,本文就简单介绍一下,并解释下元组存在的意义: 2.2.1 元组的创建 2.2.2 tuple函数 2.2.3 基本元组操作 2.2.4 元组存在的意义 2. ...
- Python数据结构:列表、元组和字典
在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...
- Python list 列表和tuple元组
1 list是一种Python的数据类型--列表 list是一种有序的集合,可以进行增删改查 >>>name=[aa,bb,cc] >>>name ['aa','b ...
- devi into python 笔记(二)元组 变量声明 和列表解析
元组tuple: 类似list,只是tuple是不可变的list.类似java的String都是不可改变的.注意:tuple没有方法(有待考证),不可以像list那样那个list.pop 或者list ...
- python list(列表)和tuple(元组)
200 ? "200px" : this.width)!important;} --> 介绍 python中存在两种有序的类型列表,分别是list(列表)和tuple(元组) ...
- Python数据结构之列表、元组及字典
一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Pyth ...
- Python数据结构(二)
array固定类型的数据序列,与list类似,只不过成员必须是相同的基本类型 array.typecodes #包含所有可用类型代码的字符串bBuhHiIlLqQfd 输入代码 C型 Python类型 ...
- [python数据结构] hashable, list, tuple, set, frozenset
学习 cs212 unit4 时遇到了 tuple, list, set 同时使用的问题,并且进行了拼接.合并操作.于是我就被弄混了.所以在这里进行一下总结. hashable and unhasha ...
- python数据结构(二)------列表
本文将重点梳理列表及列表操作. 2.1 list函数 2.2 基本列表操作 2.3 列表方法 2.1 list函数 >>>list('hello') ['h','e','l',l', ...
随机推荐
- ES6中promise的使用方法
先看看ES5中异步编程的使用. let ajax = function (callBlack) { setTimeout(function () { callBlack && call ...
- Angular(2+) 国际化方案(ngx-translate)
本文只针对ngx-translate/core 6.x版本,如果你使用的是5.x或者更低的版本,请参照以下链接. https://github.com/ngx-translate/core/blob/ ...
- 算法,java代码实现打印万年历
万年历 以1900年1月1号星期一为时间原点 星期日 第一天 星期一 第二天 星期二 第三天 星期三 第四天 星期四 第五天 星期五 第六天 星期六 第七天 1.计算出当前日 ...
- css cursor属性-显示的光标的类型(形状)的用法和定义
在网页布局的时候,在特定的地方,光标形状各有区别.这个时候,就需要用到css的cursor属性.根据自身需要选择设置鼠标指针样式. 定义和用法 cursor 属性规定要显示的光标的类型(形状). 该属 ...
- JavaScript基础:DOM操作详解
本文最初发表于博客园,并在GitHub上持续更新前端的系列文章.欢迎在GitHub上关注我,一起入门和进阶前端. 以下是正文. 前言 JavaScript的组成 JavaScript基础分为三个部分: ...
- iOS学习之Map,定位,标记位置的使用
iOS上使用地图比Android要方便,只需要新建一个MKMapView,addSubView即可.这次要实现的效果如下: 有标注(大头针),定位,地图. 1.添加地图 1.1 新一个Single V ...
- IntelliJ IDEA 2016.2.x 激活
注册码获取:http://idea.lanyus.com/
- Python3基础知识之字符串
1.运算符 * >>> b=a*5>>> b'pythonpythonpythonpythonpython'>>> b.replace('t',' ...
- cpuimage 开源之
前年学习opengl做的一个小东西. 原本计划将gpuimage 的算法一个一个转写成cpu版本 c,c++ 版本. gpuimage 项目参考: https://github.com/BradLar ...
- wamp版本升级小问题记录
在升级wamp版本时遇到的一些小问题,特此记录 在安装完成之后,修改了Apache根目录,可以正常访问.但是发现 httpd-vhosts.conf追加配置的无法访问,逐步检查,有以下问题 1.Inc ...