元组类型
元组是和列表非常相似的一种容器,它有小括号(())来定义。但功能上却有很大区别——元组是不可变类型。
不可变给元组带来什么影响
不可变并不是坏事,当我们把数据传递给一个不熟悉的API时,可以确保我们的数据不被改变(当然可以通过list()函数转换)。
元组也不是那么不可变
我们可以改变其内部包含的可变对象
其实我们在很多地方就用过元组了
所有的多对象的、逗号分隔、没有明确用符号定义的,这些集合默认的都是元组:
x, y = 1, 2 x, y ## (1,2) 'abc', 123, [456,234] ## ('abc', 123, [456,234])
函数返回的多对象
def foo1(): xxx return 0bj1, 0bj2 ## 相当于 return (0bj1, 0bj2)
单元素元组
(abc)
## 解释器以为小括号是四则运算中的符号
我们可以这样定义:
('abc',)