我们上一篇博客已经提到过列表,功能可以说是特别的多也很强大,但是负担也很重,很大程度上影响了我们的运行效率,故我们学习接触一下一个轻量级的列表-----元组
形式上元组的所有元素都在一对圆括号内,元素之间使用逗号分隔,如果元组中只有一个元素,则必须在最后增加一个逗号
元组创建与元素访问
e.g.
x = (1,2,3) #直接把元组赋给一个变量
type(x) #查看类型
x[0] #输出1,支持使用下标访问特定位置的元素
x[-1] #最后一个元素,元组支持双向索引
x[1] = 4 #元组是不可变的,异常报错
x = (3,)
#如果元组中只有一个元素,必须在后面多写一个逗号
#空元组
x= ()
x = tuple()
tuple(range(5))
#其它迭代对象转换为元组(0,1,2,3,4)
注意一下
由于元组属于不可变序列,不可直接修改元组中的元素值,也无法增加或删除元素,但可用del删除整个元组,有切片操作但只用来访问元组中的元素,从一定程度上,,可理解为常量列表,轻量级列表
e.g.
x = ([1,2],3) #包含列表的元组
x[0][0] = 5 #修改元组中的列表元素
x[0].append(8) #为元组中的列表元素增加元素
#输出为([5,2,8],3)
x[0] = x[0] + [10] #试图修改元组的值,失败
x[0] += [10] #抛出异常,但元组中的值已被修改
#输出([5,2,8,10],3)
y = x[0] #y 和x[0]指向同一个列表
y+=[11] #通过y 可以影响元组x中的第一个列表
#输出x
#([5,2,8,10,11],3)
y = y + [12] #注意这和y += [12]有本质区别
#分别输出y和x[0]
#([5,2,8,10,11,12],3)
#([5,2,8,10,11],3)