1. 元组

  元组和列表类似,但属于不可变序列,元组一旦创建,用任何方法都不可修改其元素。

  元组的定义方式和列表相同,但定义时所有元素是放在一对圆括号“()”中,而不是方括号中。

1.1元组创建

  • 使用”=”将一个元组赋值给变量

  >>> a_tuple=('a','b','mpilgrim','z','example')
  >>> a_tuple
  ('a', 'b', 'mpilgrim', 'z', 'example')
  >>> a = (3)    # 这里的括号代表数学里面的小括号
  >>> a
  3
  >>> a = (3,)      # 包含一个元素的元组,最后必须写多个逗号
  >>> a
  (3,)
  >>> a = 3,      # 也可以这样去创建元组
  >>> a
  (3,)
  >>> x = ()      # 创建空元组
  >>> x
  ()

  • 使用tuple函数将其他序列转换为元组

  >>> tuple('abcdefg')     # 把字符串转换为元组
  ('a', 'b', 'c', 'd', 'e', 'f', 'g')
  >>> aList = [-1,-4,6,7.5,-2.3,9,11]
  >>> aList
  [-1, -4, 6, 7.5, -2.3, 9, 11]
  >>> tuple(aList)        # 把列表转换为元组
  (-1, -4, 6, 7.5, -2.3, 9, 11)
  >>> s = tuple()        # 空元组
  >>> s
  ()

1.2 访问元组

  • 元组可以使用下标索引来访问元组中的值,与列表类似

  >>> a = ('a','b','c')
  >>> a[0]
  'a'  

  • 因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素

  >>> c = ('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')
  >>> c[2:4]
  ('c', 'a')

1.3 修改元组

  • 与字符串和列表一样,元组之间可以使用 + 号和 * 号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组

  >>> a = ('a','b','c')
  >>> a[0]
  'a'
  >>> a = ('a','b','c')
  >>> b = (1,2,3)
  >>> a + b
  ('a', 'b', 'c', 1, 2, 3)
  >>> a*3
  ('a', 'b', 'c', 'a', 'b', 'c', 'a', 'b', 'c')
  >>>

  注意:这里修改元组的意思其实是返回了一个新的元组,并没有对原来的元组进行修改

1.4 删除元组

  • 使用del可以删除元组对象,不能删除元组中的元素

  >>> a = ('a','b','c')
  >>> a
  ('a', 'b', 'c')
  >>> del a
  >>> a
  Traceback (most recent call last):
  File "<pyshell#38>", line 1, in <module>
  a
  NameError: name 'a' is not defined

1.5 元组常用函数

  >>> student= (1, "tom", "2008-05-06", 10, 135.7)
  >>> print(len(student))    # len 返回元组的元素个数
  5
  >>> num=(1, 2, 3, 4, 5, 6, 7 )
  >>> print (max(num))    # max 返回元组元素最大值
  7
  >>> num=(1, 2, 3, 4, 5, 6, 7 )  
  >>> print (min(num))    # min 返回元组元素最小值
  1

1.6 元组与列表的区别

  • 元组一旦定义就不允许更改。
  • 元组没有append()、extend()和insert()等方法,无法向元组中添加元素。
  • 元组没有remove()或pop()方法,也无法对元组元素进行del操作,不能从元组中删除元素。
  • 从效果上看,tuple( )冻结列表,而list( )融化元组。

1.7 元组的优点

  • 元组的速度比列表更快。如果定义了一系列常量值,而所需做的仅是对它进行遍历,那么一般使用元组而不用列表。
  • 元组对不需要改变的数据进行“写保护”将使得代码更加安全。
  • 元组可用作字典的“键”,也可以作为集合的元素。列表永远不能当做字典键使用,也不能作为集合的元素,因为列表不是不可变的。

  注意:如果元组里面的元素嵌套着列表,那么这个列表中的元素其实是可变的。

  >>> t = ('a', 'b', ['A', 'B'])
  >>> t[2][0] = 'X'
  >>> t[2][1] = 'Y'
  >>> t
  ('a', 'b', ['X', 'Y'])
  >>>

  所以这里的理解应该是元组 t 里面的元素本身不可变,但是其中有一个元素是一个list,我们对list中的元素进行了修改,但是并没有对元组里面的元素进行修改,所以这里运行才是正常的。

Python 元组详细使用的更多相关文章

  1. Python元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

  2. Python 元组内置函数

    Python元组包含了以下内置函数 序号 方法及描述 1 cmp(tuple1, tuple2)比较两个元组元素. 2 len(tuple)计算元组元素个数. 3 max(tuple)返回元组中元素最 ...

  3. Python元组与字典详解

    Python 元组 Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup ...

  4. Python 元组 count() 方法

    描述 Python 元组 count() 方法用于统计某个元素在元祖中出现的次数. 语法 count() 方法语法: T.count(obj) 参数 obj -- 元祖中统计的对象. 返回值 返回元素 ...

  5. Python 元组 index() 方法

    描述 Python 元组 index() 方法用于从元祖中找出某个对象第一个匹配项的索引位置,如果这个对象不在元祖中会报一个异常. 语法 index() 方法语法: T.index(obj[,star ...

  6. Python 元组 tuple() 方法

    描述 Python 元组 tuple() 方法用于将可迭代对象(字符串.列表.元祖.字典)转换为元组. 语法 tuple() 方法语法: tuple(iterable) 参数 iterable -- ...

  7. Python 元组 min() 方法

    描述 Python 元组 min() 方法返回元组中元素最小值. 语法 min() 方法语法: min(T) 参数 T -- 指定的元组. 返回值 返回元组中元素最小值. 实例 以下实例展示了 min ...

  8. Python 元组 max() 方法

    描述 Python 元组 max() 方法返回元组中元素最大值. 语法 max() 方法语法: max(T) 参数 T -- 指定的元组. 返回值 返回元组中元素最大值. 实例 以下实例展示了 max ...

  9. Python 学习笔记(九)Python元组和字典(一)

    Python 元组 元组的定义  元组(tuple)是一种Python对象类型,元组也是一种序列 Python中的元组与列表类似,不同之处元组的元素不能修改 元组使用小括号,列表使用方括号 元组的创建 ...

  10. python 元组拾遗

    python 元组拾遗 python 语法糖 def printall(*args):  return args  一个以 * 开头的参数将参数聚集为一个元组. printall函数可以接收任意个数的 ...

随机推荐

  1. P4913【黄】

    这题好像可以用线段树什么的高级做法来做,但我感觉我这个简单做法不管是时间还是空间都和那些复杂的做法差不了太多.重点是很优雅,思路非常简单,而且代码很短,用OOP思想写成的代码可读性极高,不用注释估计都 ...

  2. freeswitch-1.10.7性能测试

    概述 freeswitch 是一款简单好用的开源软交换平台. freeswitch-1.10.7是比较新的版本,使用时间比较短,需要一个可参考的性能指标,作为实际使用过程中的配置指导. 环境 cent ...

  3. java基础-常用类-day11

    目录 1. 包装类 2. Integer类 3.util.date 4. java.sql.Date 5. SimpleDateFormat 6. Calendar 7. Math 8. String ...

  4. centos7 systemctl配置开机自启动服务

    centos7使用systemctl替代原来/etc/init.d,按官方的说法是提高系统服务的运行效率.服务配置更加简单易用,对于一些自定义的服务来配置开机自启动,是真的香! 概念理解 它是服务管理 ...

  5. Linux 查看office文件及pdf文件

    1.查看pdf文件 evince PdfFile_name 查看office文件 openoffice.org 文件名 & // 打开或者编辑.doc.odt等文本文档命令 openoffic ...

  6. 【Gerrit】 快捷操作

    A:添加Reviewers V+B:Pachset刷到最新 D:Download patch J.K:文件移动选中 R:文件Reviewed状态修改 S:五星状态修改,可用于分类管理 U:返回上层 I ...

  7. CPU实际频率查看

    cat /sys/devices/system/cpu/cpu3/cpufreq/cpuinfo_cur_freq

  8. [转帖]SPEC2006移入docker后的运行问题

    https://www.cnblogs.com/csxyc/p/7157890.html 实验需要给SPEC2006的benchmark绑定CPUID,于是想到用docker分配CPU资源,写一个简单 ...

  9. Python设计模式:你的代码真的够优雅吗?

    当涉及到代码优化时,Python作为一种高级编程语言,具有广泛的应用领域和强大的功能.在软件开发中,设计模式是一种被广泛采用的解决问题的方案,它提供了一种在特定情境中重复使用的可行方案.在Python ...

  10. vue面试题(一)正在重新整理

    1.输入一个 URL到浏览器整个过程发生了什么?ok 1.浏览器查找当前 URL是否存有缓存,并检查这个缓存是否过期 2.DNS 解析 URL 对应的 IP 3.根据 IP 建立 TCP 连接(三次握 ...