第6章 序列:字符串、列表和元组(6)

本文详细介绍了元组的概念、操作以及与Python对象拷贝的相关知识,包括元组的创建、访问、更新与移除特性,元组操作符和内建函数与列表的一致性,元组的特殊性如不可变性及其例外情况,单元素元组的创建方法,以及拷贝Python对象的浅拷贝和深拷贝概念。

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)、如果元组变量只包含原子类型对象,对它的深拷贝将不会进行。(注:因为元组是不可变的,深拷贝没有意义)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值