Chinaunix
标题:
刚看到一个很有意思的问题,大家看看,我反正看不出来为什么..
[打印本页]
作者:
t6760915
时间:
2010-06-12 14:42
标题:
刚看到一个很有意思的问题,大家看看,我反正看不出来为什么..
rt
0006.GIF
(3.38 KB, 下载次数: 37)
下载附件
2010-06-12 14:42 上传
作者:
jjj137
时间:
2010-06-12 14:57
本帖最后由 jjj137 于 2010-06-12 14:59 编辑
[[0,0]]*3 创建的都是指向 [0,0] 这个 list 对象的引用。相当于:
a = [0,0]
b = [a] * 3
复制代码
而 [[0,0],[0,0],[0,0]] 创建了三个对象,相当于:
a = [0,0]
b = [0,0]
c = [0,0]
d = [a, b, c]
复制代码
作者:
Kabie
时间:
2010-06-12 19:04
没错……所以建立的时候还是用列表解析比较合适……
作者:
luffy.deng
时间:
2010-06-12 22:23
本帖最后由 luffy.deng 于 2010-06-12 23:57 编辑
实际上你只要这样 就知道什么了。
b=[[0,0]]*3
print id(b[0]),id(b[1]),id(b[2])
b=[[0,0],[0,0],[0,0]]
print id(b[0]),id(b[1]),id(b[2])
复制代码
作者:
milujite
时间:
2010-06-13 16:09
学习了,是否属于浅拷贝和深拷贝的问题。
作者:
wqjwftcaqr
时间:
2010-06-14 13:33
回复
5#
milujite
应该是的,列表和字符串被引用时情况不一样的
作者:
kgd924
时间:
2010-06-14 20:03
需要系统的学习.
作者:
luffy.deng
时间:
2010-06-14 20:54
跟浅拷贝和深拷贝无关。
作者:
2gua
时间:
2010-06-18 12:58
这个帖子的讨论,还是对初学者很有帮助的。
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2