'''元组
Python内置的数据类型之一,是一个不可变序列
不可变序列:字符串 元组
没有增,删,改操作
可变序列: 列表,字典
可以对序列执行增,删,改操作,对象地址不发生更改'''
'''元组的创建方式
直接小括号 t=('python','hello',98)
使用内置函数tuple() t=tuple(('python','hello',98))
只包含一个元组的元素需要使用逗号和小括号 t=(10,)'''
t='python','hello',98 #省略了小括号
print(t)
print(type(t))
t=tuple(('python','hello',98))
print(t)
t=(10,) #如果元组中只有一个元素,逗号不可省略
print(t)
#创建空元组
t=()
print(t)
'''为什么要将元组设计成不可变序列
在多任务环境下,同时操作对象时不需要加锁
因此,在程序中尽量使用不可变序列
注意事项:元组中存储的是对象的引用
如果元组中对象本身是不可变对象,则不能在引用其他对象
如果元组中的对象是可变对象,则可变对象的引用不允许改变,但数据允许改变'''
t=(10,[20,30],9)
print(t)
print(type(t))
print(t[0],type(t[0]),id(t[0]))
print(t[1],type(t[1]),id(t[1]))
print(t[2],type(t[2]),id(t[2]))
'''尝试将t[1]修改为100'''
#t[1]=100 元组是不允许修改元素的
'''由于[20,30]列表,而列表是可变序列,所以可以向列表中添加元素,列表的内存地址不变'''
t[1].append(100) #向列表中添加元素
print(t,id(t[1]))
#元组的遍历
#元组是可迭代对象,可以使用for...in...来遍历
t=('python','hello',98)
#获取元组元素的方式,使用索引
print(t[0])
print(t[1])
print(t[2])
#print(t[3]) #IndexError:tuple index out of range
#遍历元组
for item in t:
print(item)
|