python学习笔记(一)元组tuple

时间:2023-01-31 14:43:21

元组由简单的对象组构成,元组与列表相似,但是元组不能在原处修改。元组位置有序的对象集合,元组通过偏移来访问。

为什么有了列表还要元组?元组的不变性提供了某种完整性,可以确保元组在程序中不被另一个引用修改,元组类似于其他语言中的常数。

元组用圆括号表示,对象用逗号分隔。

>>> T = (1,2,3,4,5) #新建元组
>>> T[0],T[2:3] #索引;分片  下标从0开始,有起始位置的包前不包后
(1, (3,))
>>> T[0],T[2:5]
(1, (3, 4, 5))
>>> T =('c','a','b','d') >>> sorted(T) #两种排序方法,sort()和sorted() ['a', 'b', 'c', 'd'] #排序以后变成列表 >>> T ('c', 'a', 'b', 'd') >>> T.sort() #不能直接对元组使用sort,因为元组不可变 Traceback (most recent call last): File "<pyshell#7>", line 1, in <module> T.sort() AttributeError: 'tuple' object has no attribute 'sort' >>> tmp = list() >>> tmp = sorted(T) >>> tmp ['a', 'b', 'c', 'd'] >>> T = (1,2,3,4,5,6,2,3,2,5,6,1) #索引与计数 >>> T.index(2) #第一个2出现的位置 1 >>> T.index(2,2) #第二个2出现的位置 6 >>> T.count(2) #总共2出现的次数 3

元组不可改变,但是元组内部嵌套的列表可以改变。

>>> T=(1,[2,3],4)
>>> T[1]='ok'

Traceback (most recent call last):
  File "<pyshell#17>", line 1, in <module>
    T[1]='ok'
TypeError: 'tuple' object does not support item assignment
>>> T[1][0]='ok'
>>> T
(1, ['ok', 3], 4)