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(元组)的更多相关文章

  1. python数据结构(二)------元组

    元组是不可变序列,因此,元组的操作非常简单,本文就简单介绍一下,并解释下元组存在的意义: 2.2.1 元组的创建 2.2.2 tuple函数 2.2.3 基本元组操作 2.2.4 元组存在的意义 2. ...

  2. Python数据结构:列表、元组和字典

    在Python中有三种内建的数据结构——列表list.元组tuple和字典dict 列表中的项目包括在方括号中,项目之间用逗号分割 元组和列表十分类似,只不过元组和字符串一样是不可变的 即你不能修改元 ...

  3. Python list 列表和tuple元组

    1 list是一种Python的数据类型--列表 list是一种有序的集合,可以进行增删改查 >>>name=[aa,bb,cc] >>>name ['aa','b ...

  4. devi into python 笔记(二)元组 变量声明 和列表解析

    元组tuple: 类似list,只是tuple是不可变的list.类似java的String都是不可改变的.注意:tuple没有方法(有待考证),不可以像list那样那个list.pop 或者list ...

  5. python list(列表)和tuple(元组)

    200 ? "200px" : this.width)!important;} --> 介绍 python中存在两种有序的类型列表,分别是list(列表)和tuple(元组) ...

  6. Python数据结构之列表、元组及字典

    一位大牛Niklaus Wirth曾有一本书,名为<Algorithms+Data Structures=Programs>,翻译过来也就是算法+数据结构=程序.而本文就是介绍一下Pyth ...

  7. Python数据结构(二)

    array固定类型的数据序列,与list类似,只不过成员必须是相同的基本类型 array.typecodes #包含所有可用类型代码的字符串bBuhHiIlLqQfd 输入代码 C型 Python类型 ...

  8. [python数据结构] hashable, list, tuple, set, frozenset

    学习 cs212 unit4 时遇到了 tuple, list, set 同时使用的问题,并且进行了拼接.合并操作.于是我就被弄混了.所以在这里进行一下总结. hashable and unhasha ...

  9. python数据结构(二)------列表

    本文将重点梳理列表及列表操作. 2.1 list函数 2.2 基本列表操作 2.3 列表方法 2.1 list函数 >>>list('hello') ['h','e','l',l', ...

随机推荐

  1. Redis进阶实践之六Redis Desktop Manager连接Windows和Linux系统上的Redis服务

    一.引言 今天本来没有打算写这篇文章,当初我感觉使用这个工具应该很简单,下载的过程也不复杂,也没有打算记录下来.但是在使用的过程中还是出现了一些问题,为了给第一次使用Redis Desktop Man ...

  2. tp5 $_ENV获取不到数据

    $_ENV变量是取决于服务器的环境变量的,从不同的服务器上获取的$_ENV变量打印出的结果可能是不同的. php的配置文件php.ini的配置项为:variables_order = "GP ...

  3. 分享如何使用PHP将URL地址参数进行加密传输提高网站安全性

    大家在使用PHP进行GET或POST提交数据时,经常会在URL带着参数进行传递,比如www.mdaima.com/get.php?id=1&page=5,这里就将id编号和page页码进行了参 ...

  4. Sencha Touch vs jQuery Mobile

    Sencha Touch:重量级框架,类似于Flex SDK;组件封装较多;在各平台交互表现统一(内部封装);入门门槛较高 jQuery Mobile:轻量级框架,实质是jQuery插件;组件较少;交 ...

  5. mybatis_helloword(1)

    摘录自:http://blog.csdn.net/y172158950/article/details/16979391 新的项目中用到mybatis,虽然不用自己写ORM的代码,但是借这个机会,学习 ...

  6. linux unzip 解压后文件名乱码

    在windows上zip的包,rz上传到linux下,发现出现乱码.记录下解决过程: 1.确定windows上的默认字符集 在Windows平台下,直接在命令行中,输入:chcp 在显示的结果中,会出 ...

  7. [转]怎么查看和修改 MySQL 的最大连接数?

    使用 MySQL 数据库的站点,当访问连接数过多时,就会出现 "Too many connections" 的错误.出现这种错误有两种情况,一种是网站访问量实在太大,服务器已经负担 ...

  8. 1_mysql_认识

    什么是数据库? -- 数据                 -- 处理+存储 信息 -- 数据库              -- 存取数据 软件 本质是对文件系统的上层封装,通过软件去管理文件,管理数 ...

  9. linkin大话设计模式--适配器模式

    linkin大话设计模式--适配器模式 大家知道,在java中只允许单继承,但是在实际问题中往往都需要多继承,java引入了接口这一概念.(一个类可以实现多个接口) 由于接口中都是抽象方法,那么我们在 ...

  10. SVN中服务器地址变更

    SVN中服务器地址变更后不需要重新导项目,只要修改下SVN的服务器地址,更新一下即可.有两种方法: 方法一:通过MyEclipse中SVN插件 1.选择window→show view→other→S ...