【发布时间】:2017-04-04 21:49:59
【问题描述】:
我有这段代码用于在嵌套列表中添加项目:
list1 = [[1, 2, 3],[4, 5, 6]]
total = 0
for i in range(0, len(list1)):
print 'len(list1)', len(list1)
print 'i=', i
for j in range(0, len(list1[i])):
print 'j=', j
print 'list1i', list1[i]
total += list1[i][j]
print 'sub-total=', total
print 'Final Total:', total
实施后,将运行:
len(list1) 2
i= 0
j- 0
list1i [1, 2, 3]
sub-total= 1
j- 1
list1i [1, 2, 3]
sub-total= 3
j- 2
list1i [1, 2, 3]
sub-total= 6
len(list1) 2
i= 1
j- 0
list1i [4, 5, 6]
sub-total= 10
j- 1
list1i [4, 5, 6]
sub-total= 15
j- 2
list1i [4, 5, 6]
sub-total= 21
Final Total: 21
它有效,但我不明白为什么。比如,为什么 i= 0 一开始? “i”不应该是列表的元素吗?我认为这就是运行 for 循环时会发生的情况。与 j 相同。另外, i 和 j 属于什么?我一直在看这段代码几个小时并搜索视频,似乎找不到对此的解释。如果有人可以为我解释这段代码的元素,那真的会很有帮助。谢谢。
【问题讨论】:
-
您应该将这些问题直接发给编写此代码的人。
-
FWIW,我会用
for sublist in List1: for item in sublist: total += item替换那些循环。你现在所拥有的,for i in range(len(...)),是一种代码味道。在这种情况下调用range()通常是不必要的。 -
或者official Python2 tutorial,因为你使用的是Python2。
-
使用调试器,或
print语句用于代码中您不理解的点处的变量通常会有所帮助..