|

楼主 |
发表于 2020-12-30 22:12:21
|
显示全部楼层
我好像理解为什么了.
对于for函数而言, 每循环一次, 它就会把这一次循环的值给打印出来. 例如:
for i in range(10):
print(i)
那么, 我们就会得到:
0
1
2
3
4
5
6
7
8
9
同样的道理. 在这一段代码里:
triangle = []
for i in range(10):
triangle.append([])
当i = 0时, 进行第1次循环, append在triangle这个列表中添加了第1个元素, 这个元素就是[], 此时triangle = [[]]. for循环将它打印出来:
[[]]
当i = 0时, 进行第2次循环, append在triangle这个列表中又添加了1元素[], 此时triangle = [[],[]]. for循环将它打印出来:
[[],[]]
以此类推
当for循环结束的时候, triangle = [[],[],[],[],[],[],[],[],[],[]] 然而, 此时输入triangle, 会发现屏幕上出现的是:
[[]]
[[], []]
[[], [], []]
[[], [], [], []]
[[], [], [], [], []]
[[], [], [], [], [], []]
[[], [], [], [], [], [], []]
[[], [], [], [], [], [], [], []]
[[], [], [], [], [], [], [], [], []]
[[], [], [], [], [], [], [], [], [], []]
这并不意味着此时屏幕上打印的内容就是triangle的值, 就像上面第一个for循环把0~9都打印下来一样, 程序只是把for循环10次执行的结果一次性打印出来了而已. 为了验证我的想法是不是对的. 我重新再输入triangle, 按回车. 这才是执行完for循环以后, triangle此时此刻的值.
[[], [], [], [], [], [], [], [], [], []]
哈哈哈, 茅塞顿开! 本质上还是对for循环理解不到位.
|
|