python基础 请问 红框里的输出为什么不是 [ [1] [1, 2] ]啊

python基础 请问 红框里的输出为什么不是 [ [1] [1, 2] ]啊

楼上说的对,想要输出[[1],[1,2]]的话将liste=[]放到 for j in range(1,3): 循环下就能实现

 

https://www.zhihu.com/question/285827253/answer/445923011

这篇文章下面有回答

因为你的result.append(liste)中的元素指向的是liste,如果liste变化,你的result就会变化

上面的技术专家已经说得很清楚了,我补充一下。

result = []
a = [1]
result.append(a)
# a.append(2)     # 操作一
# a.extend([2])   # 操作二
# a = 2           # 操作三
result.append(a)
print(result)

# Result With 操作一 or 操作二:
# [[1, 2], [1, 2]]

# Result With 操作三:
# [[1], 2]

有点类似指针,可以自己试试。另外推荐一个网站:http://www.pythontutor.com/,可以看到代码的执行过程