6.16 元组
元组的创建、访问、更新,移除与列表类似,只是在更新与移除时不能更改原元组本身。
6.17 元组操作符和内建函数
与列表完全一致
6.18 元组的特殊性
6.18.2 元组也不是那么“不可变”
元组对象本身是不可变的。
6.18.3 默认集合类型
所有函数返回的多对象都是元组类型。
>>> def fun():
... return 1, 2, 3
...
>>>
6.18.4 单元素元组
无法创建单元素元组,一个变通的方法是在第一个元素后面添一个逗号来表明是一个元组而不是在做分组操作。
>>> ("111")
...
'111'
>>> type(("222"))
<type 'str'>
>>> ("111",)
('111',)
>>>
6.20 *拷贝Python对象、浅拷贝和深拷贝
序列类型对象的浅拷贝是默认类型拷贝,并可以以下几种方式实施 (1)完全切片操作[:] (2)利用工厂函数 (3)使用copy模块的copy函数。
深拷贝需要copy.deepcopy()函数
>>> person1 = ['name', ['money', 100]]
>>> person2 = person1
>>> import copy
>>> person3 = copy.deepcopy(person1)
>>> person1[1][1] = 50
>>> print person1, person2, person3
['name', ['money', 50]] ['name', ['money', 50]] ['name', ['money', 100]]
>>>
几点需要注意:1)、非容器类型没有被拷贝一说,浅拷贝是用完全切片操作来完成的。2)、如果元组变量只包含原子类型对象,对它的深拷贝将不会进行。(注:因为元组是不可变的,深拷贝没有意义)