python元组的性质以及创建与遍历
元组是什么
元组是python内置的数据结构之一,是一个不可变序列
可变序列:列表,字典
可以对序列进行增删改的操作,且对象地址(即对象的id)不会发生变化
不可变序列:字符串,元组
没有增删改的操作
定义:
t = ( "aaa", "bbb", 123 )
t = tuple(("aaa", "bbb", 123))
为什么要将元组设置成不可变序列
在多任务环境下,同时操作对象时不需要加锁,因此在程序中尽量使用不可变序列。
- 这句话可以这么解释:譬如,你的内存中存在一个关键数据,多个进程任务都需要对它进行访问,如果都可以对这个数据进行增删改的话,先不说安全性缺失,前一个程序修改数据后,后一个程序读取的就不是原始数据了。
注意事项
元组中存储的是对象的引用
a)如果元祖中对象本身为不可变,则不能再引用其它对象
b)如果元组中的对象是可变对象,则可变对象的引用不允许改变,但是数据可以变
看图(来自杨淑娟老师):
t元组不可变,但是它存储的第二个对象是列表,属于可变对象,此时:将t元组的第二个元素(引用)改为100是不允许的,但如果你修改的是该对象指向的对象,则可以修改。
代码
# 小括号创建
tup = ("aaa", "bbb", 123)
# 使用内置函数
t = tuple(("aaa", "bbb", 123))
# 只有一个元素时,一定要使用逗号以及小括号
t2 = (123,)
t3 = (123)
# 空元组
t4 = ()
t5 = tuple()
print(tup, type(tup))
print(t, type(t))
print(t2, type(t2))
print(t3, type(t3))
# 元组的遍历
ttt = ("aaa", "bbb", 123)
# 使用索引获取元素
print(ttt[0], ttt[1], ttt[2])
# 遍历元组
for item in ttt:
print(item)
测试截图: