Re: [闲聊] python大师请进

楼主: sustainer123 (caster)   2024-05-17 00:07:29
其实这就py浅复制的问题
浅复制就是给新变量一个新的内存位址但新变量内的元素跟原变量是一样的
以你的例子为例
a = [[[]]*3 for _ in range(3)]
print(id(a[0]))
print(id(a[1]))
print(id(a[0][0]))
print(id(a[0][1]))
print(id(a[1][0]))
print(id(a[1][1]))
result:
2558576809792
2558576852544
2558576953472
2558576953472
2558576809664
2558576809664
我们可以发现元素都指向同一个位置
所以修改a[0][0].append(1)
a[0][0] a[0][1] a[0][2] 都会受影响
然后推文里面cp3写的就是深复制
深复制就是里面元素的内存位址都不同
大概这样
作者: SecondRun (雨夜琴声)   2024-05-17 00:08:00
大师
作者: DreaMaker167 (dreamaker)   2024-05-17 00:08:00
以前好像学过
作者: steven183 (steven183183)   2024-05-17 00:09:00
大师...
作者: NTUtriangle (国立台湾大学联盟)   2024-05-17 00:10:00
大师
作者: Benson765421 (枫币的超越者)   2024-05-17 00:10:00
大师
作者: a000000000 (九个零喔)   2024-05-17 00:10:00
py大师
作者: CP3isgood (3345678)   2024-05-17 00:11:00
大师
作者: RinNoKareshi (立石凛的男友)   2024-05-17 00:11:00
大师
作者: wu10200512 (廷廷)   2024-05-17 00:11:00
py大师
作者: DJYOSHITAKA (Evans)   2024-05-17 00:11:00
玩py大师
作者: mayolane (mayolaneisyagami)   2024-05-17 00:11:00
大师
作者: Che31128 (justjoke)   2024-05-17 00:12:00
py大师
作者: aioiwer318 (哀欧)   2024-05-17 00:14:00
py大师
作者: digua (地瓜)   2024-05-17 00:15:00
大师
作者: sixB (6B)   2024-05-17 00:21:00
assign用这个真的超不习惯==
作者: DaBouSer (射爆)   2024-05-17 00:21:00
py大师
作者: cities516 (安安路过)   2024-05-17 00:31:00
py大师

Links booklink

Contact Us: admin [ a t ] ucptt.com