list 和tuple转换的问题
时间:2011-02-27
来源:互联网
在python核心编程里说:
list()函数和tuple()函数接受可迭代对象(比如另一个序列)作为参数,并通过浅拷贝数据
来创建一个新的列表或者元组。
,无论list()还是tuple()都不可能做完全的转换(见
6.1.2 节).也就是说,你传给tuple()的一个列表对象不可能变成一个元组,而你传给list()的
对象也不可能真正的变成一个列表.虽然前后两个对象(原来的和新的对象)有着相同的数据集
合(所以相等 == ),但是变量指向的却不是同一个对象了
不明白为啥 浅拷贝 id还不一样了!
Python code
list()函数和tuple()函数接受可迭代对象(比如另一个序列)作为参数,并通过浅拷贝数据
来创建一个新的列表或者元组。
,无论list()还是tuple()都不可能做完全的转换(见
6.1.2 节).也就是说,你传给tuple()的一个列表对象不可能变成一个元组,而你传给list()的
对象也不可能真正的变成一个列表.虽然前后两个对象(原来的和新的对象)有着相同的数据集
合(所以相等 == ),但是变量指向的却不是同一个对象了
不明白为啥 浅拷贝 id还不一样了!
Python code
>>> l=['a','b'] >>> t = tuple(l) >>> t ('a', 'b') >>> id(l) 14415712 >>> id(t) 14435752 >>>
作者: z752964360 发布时间: 2011-02-27
你创建新的序列对象当然id不同了,浅拷贝指的序列对象的元素,不是序列对象本身。
id(l[0]), id(t[0])
id(l[0]), id(t[0])
作者: I_NBFA 发布时间: 2011-02-27
所谓深拷贝浅拷贝的区别是对象的子对象(或者叫子域,字段,成员)是否被递归clone。对象本身,都是一个新的copy,id当然不同。
作者: iambic 发布时间: 2011-02-27
引用 2 楼 iambic 的回复:
所谓深拷贝浅拷贝的区别是对象的子对象(或者叫子域,字段,成员)是否被递归clone。对象本身,都是一个新的copy,id当然不同。
所谓深拷贝浅拷贝的区别是对象的子对象(或者叫子域,字段,成员)是否被递归clone。对象本身,都是一个新的copy,id当然不同。
有深度
作者: bestdowt1314 发布时间: 2011-02-27
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28