您的位置:首页 > 编程语言 > Python开发

Python核心数据类型(内置对象)—— 元组(tuple)

2015-12-02 23:38 681 查看
元组:

元组对象(tuple),是一个不可改变的序列(提供了完整性的约束)。圆括号为操作符,支持任意类型、任意嵌套以及常见的序列操作。

 

元组操作

>>> T = (1,2,3,4)   # 创建一个元组

>>> len(T)    # 获取元组长度

4              

>>> T[2]    # 获取指定的项

3

>>> T.index(3)  # 获取元组中某项的索引

2

>>> T.count(4)  # 获取元组中某项的个数,可以检查元组中是否包含某项

1

>>> T[1:3]  # 分片(slice)操作,生成一个新的元组

(2, 3)

 

元组运算符:+ *

>>> T = (1,2,3,4)  

>>> T + (5,6)   # 元组连接操作

(1,2,3,4,5,6)

>>> T * 2

(1, 2, 3, 4, 1, 2, 3, 4)

 

元组内置函数:

1. len(tuple):计算元组元素个数。

2. max(tuple):返回元组中元素最大值。

3. min(tuple):返回元组中元素最小值。

4. tuple(seq):将列表转换为元组。

    >>> l = [1,3,5]

    >>> l

    [1, 3, 5]

    >>> tuple(l)

    (1, 3, 5)

 

元组创建

1. 创建一个空元组:

>>> t1 = ()

2. 当元组中只包含一个元素时,需要在元素后面添加逗号来消除歧义:

>>> t1 = (10,)

>>> t1

(10,)

不加逗号的话,就不是创建元组了,而是一个数字:

>>> t1 = (10)

>>> t1

10

3. 元组支持混合类型和嵌套:

>>> T = (‘abc’, 2.0, [3, 4, 5])

>>> T[2]

[3, 4, 5]

>>> T[2][1]

4. 创建元组时还可以省略圆括号(任意无符号的对象,以逗号隔开,默认为元组)

>>> t1 = 1, 2, 3, 4, 5

>>> t2 = 'a', 'b', 'c', 'd'

5. 动态创建元组:

当需要根据不定的元素个数来创建元组时,可利用元组的合并功能来创建动态元组。

如下,使用以下t和l的所有元素(元素个数不定)作为一个元组:

>>> t = (1, 2, 3, 4, ...)

>>> l = ['a', 'b', 'c', 'd', ...]

>>> new_t = ()

>>> for i in t:

           new_t += (i,)

>>> for i in l:

           new_t += (i,)

>>> new_t

(1, 2, 3, 4, ..., 'a', 'b', 'c', 'd', ...)

 

元组合并

元组中的元素是不允许修改的,但是可以对元组进行连接组合:

>>> t1 = (12, 34, 56)

>>> t2 = ('abc', 'xyz')

>>> t3 = t1 + t2

>>> t3

(12, 34, 56, 'abc', 'xyz')

 

删除元组

元组中的元素是不允许删除的,但是可以使用del语句删除整个元组:

>>> del t3 

>>> t3

NameError: name 't3' is not defined

 

 

“可变”的元组元素

>>> t = (1, 2, 3, ['a', 'b', 'c'])

>>> t[3][0] = 'x'

>>> t[3][1] = 'y'

>>> t[3][2] = 'z'

>>> t

(1, 2, 3, ['x', 'y', 'z'])

表面上看,tuple的元素确实变了,但其实变的不是tuple的元素,而是list的元素。tuple开始指向的list并没有改成别的list,只是list的元素改变了,所以,“不变”是指tuple的每个元素指向永远不变。

 
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息