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

元组:

元组对象(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的每个元素指向永远不变。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值