gpt4 book ai didi

python - 嵌套列表和 For 循环

转载 作者:太空宇宙 更新时间:2023-11-03 12:29:20 26 4
gpt4 key购买 nike

考虑一下:

list = 2*[2*[0]]
for y in range(0,2):
for x in range(0,2):
if x ==0:
list[x][y]=1
else:
list[x][y]=2
print list

结果:

[[2,2],[2,2]]

为什么结果不是 [[1,1],[2,2]]?

最佳答案

因为您正在创建一个列表,该列表是对同一子列表的两个引用

>>> L = 2*[2*[0]]
>>> id(L[0])
3078300332L
>>> id(L[1])
3078300332L

所以对 L[0] 的更改将影响 L[1],因为它们是相同的列表

做你想做的事情的通常方法是

>>> L = [[0]*2 for x in range(2)]
>>> id(L[0])
3078302124L
>>> id(L[1])
3078302220L

注意 L[0] 和 L[1] 现在是不同的

关于python - 嵌套列表和 For 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5740232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com