【基本属性】
1. 可迭代 iterable
2. 不可变
3. 有序
【内存示意图】
tuple中储存的是对象的引用。如果元素为不可变对象,则不能再引用其他对象;如果元素为可变对象,则该元素的引用不可改变但其数据可以改变
1. 当元素为可变对象时,对其引用所指向的数据进行增、删、改的操作
tup = (1, 2, [3, 4])
tup[2].extend([5, 6])
tup
>>> (1, 2, [3, 4, 5, 6])
2. 当元素为可变对象时,对其引用操作
tup = (1, 2, [3, 4])
tup[2] += [5, 6]
>>> TypeError
tup
>>> (1, 2, [3, 4, 5, 6])
# 赋值时先计算等号右边,计算完成后修改tup[2]时报错
3. 当元素为不可变对象时,对其引用操作
tup = (1, 2, [3, 4])
tup[1] = 20
tup
>>> TypeError
【创建】
1. 封包
tup = 1, 2, 3
tup
>>> (1, 2, 3)
tup = 1,
tup
>>> (1,)
# 如过只有一个元素,只要末尾加上逗号都会变为元组
2. tup = tuple() 用tuple()函数创建或转换
3. tup = (1, 2) 用小括号创建。如果只包含一个元素,需要在末尾加上逗号