python:元组tuple

tuple是另一种有序的数据类型,与list比较类似。主要不同的一点是tuple被创建后就不能对其进行修改。所以,tuple与list不同,没有append(),pop(),insert()这些方法可以使用。获取元素的方法和list是一样的,可以通过索引来访问(也是从0开始的),只不过不能赋值成为其他的元素。

因为tuple不可变,所以代码更安全。如果可以的话,我们尽量使用tuple代替list。

定义一个空的tuple,使用 ()

In [1]:
t = ()
t
Out[1]:
()

只有1个元素的元组在进行定义的时候,需要加一个逗号 , 来消除歧义,否则定义的就不是一个元组而是元素本身:

In [2]:
t = (3)
t
Out[2]:
3
In [3]:
t = (3,)
t
Out[3]:
(3,)

可以使用 + 对元组进行连接,例如:

In [4]:
t1 = (2,3,5)
t2 = ('ricequant','python')
t3 = t1 + t2
t3
Out[4]:
(2, 3, 5, 'ricequant', 'python')

元组中的元素不能被删除,但是我们可以使用 del 删除整个元组,删除后可以重新定义:

In [5]:
t4 = ('a',2,'b')
t4
Out[5]:
('a', 2, 'b')
In [6]:
del t4
t4
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-6-00422465996d> in <module>()
      1 del t4
----> 2 t4

NameError: name 't4' is not defined

事实上,上面所说的元素不变是指每个元素的指向永远不变。即指向1,就不能改成指向2,指向一个list,就不能改成指向其他对象,但指向的这个list本身是可变的,例如:

In [7]:
tup = (1,2,[3,4,5])
tup
Out[7]:
(1, 2, [3, 4, 5])
In [8]:
tup[2][0] = 7
tup[2][1] = 11
tup
Out[8]:
(1, 2, [7, 11, 5])



    
    

Python 的元组数据类型包含更多的方法。

tup.index(x, [start, [stop]])) 返回元组中start到stop索引中第一个值为 x 的元素在整个列表中的索引。如果没有匹配的元素就会返回一个错误。

tup.count(x) 返回 x 在元组中出现的次数。

cmp(tuple1, tuple2) 比较元组中两个元素。

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

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

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

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

元组不提供字符串、列表和字典中的方法。如果相对元组排序,通常先得将它转换为列表并使其成为一个可变对象,才能获得使用排序方法,或使用sorted内置方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值