python基础(元组)不可修改的序列

元祖特点

与列表一样,元组也是序列,唯一的差别在于元组是不能修改的(字符串也不能修改)。只有在定义的一瞬间可以修改。元组是有序的,只要将一些值用逗号分隔,以小括号包围的序列,可以通过()和 tuple 函数定义,就能自动创建一个元组。元组的优点由于元组不可变,所以遍历元组比列表要快(较小的性能提升)。


>>> 1, 2, 3 
(1, 2, 3)
如你所见,元组还可用圆括号括起(这也是通常采用的做法)。
>>> (1, 2, 3) 
(1, 2, 3)
空元组用两个不包含任何内容的圆括号表示。
>>> () 
()
如何表示只包含一个值的元组呢?这有点特殊:虽然只有一个值,也必须在它后面加上逗号。
>>> 42 
42 
>>> 42, 
(42,) 

>>> (42,) 
(42,) 
最后两个示例创建的元组长度为1,而第一个示例根本没有创建元组。逗号至关重要,仅将值用圆括号括起不管用:(42)与42完全等效。但仅仅加上一个逗号,就能完全改变表达式的值。
>>> 3 * (40 + 2) 
126 
>>> 3 * (40 + 2,) 
(42, 42, 42)
函数tuple的工作原理与list很像:它将一个序列作为参数,并将其转换为元组。如果参数已经是元组,就原封不动地返回它。
>>> tuple([1, 2, 3]) 
(1, 2, 3) 
>>> tuple('abc') 
('a', 'b', 'c') 
>>> tuple((1, 2, 3)) 
(1, 2, 3) 
元组并不太复杂,而且除创建和访问其元素外,可对元组执行的操作不多。元组的创建及其元素的访问方式与其他序列相同。
>>> x = 1, 2, 3 
>>> x[1] 

>>> x[0:2] 
(1, 2) 
元组的切片也是元组,就像列表的切片也是列表一样。它们用作映射中的键(以及集合的成员),而列表不行。
有些内置函数和方法返回元组,这意味着必须跟它们打交道。只要不尝试修改元组,与元组“打交道”通常意味着像处理列表一样处理它们(需要使用元组没有的index和count等方法时例外)。一般而言,使用列表足以满足对序列的需求。

 

元组与字符串的相同与区别

1、元组和字符串都是有序的,不可修改的序列

2、元组的元素可以是任何类型,字符串的元素只能是字符

3、元组的元素长度可以任意,字符串的元素长度只能为 1

 

元组的方法


版权声明:本文为jamfiy原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。