Python使用While循环迭代二维列表 grid=[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]] 笼子=[[9,3,0,5,6],[7,2,1,2],[10,3,3,8,13],[14,4,4,9,14,19],[3,1,7],[8,3,10,11,16],[13,4,12,17,21,22],[5,2,15,20],[6,3,18,23,24]] noCages=9 总数=0 i=0 指数=2 而我认为: 而指数

Python使用While循环迭代二维列表 grid=[[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4],[0,1,2,3,4]] 笼子=[[9,3,0,5,6],[7,2,1,2],[10,3,3,8,13],[14,4,4,9,14,19],[3,1,7],[8,3,10,11,16],[13,4,12,17,21,22],[5,2,15,20],[6,3,18,23,24]] noCages=9 总数=0 i=0 指数=2 而我认为: 而指数,python,Python,我尝试使用while循环来遍历cages列表,并将第二个元素带到每个嵌套列表中的最后一个元素。然后我将这些值添加到总数中,我想对所有嵌套列表都这样做。我在使用while循环遍历cages列表时遇到问题。我如何才能更好地实现这一点。(它还说len(i)是一个int,没有长度,这是有意义的。但是,我不知道如何使用它。如果你使用for循环,你将从嵌套列表中一次得到一个列表(对于cage in cage),然后你可以使用另一个for来读取单个值。[1:]表示跳过第一个元素 grid = [[0, 1,

我尝试使用while循环来遍历cages列表,并将第二个元素带到每个嵌套列表中的最后一个元素。然后我将这些值添加到总数中,我想对所有嵌套列表都这样做。我在使用while循环遍历cages列表时遇到问题。我如何才能更好地实现这一点。(它还说len(i)是一个int,没有长度,这是有意义的。但是,我不知道如何使用它。

如果你使用
for
循环,你将从嵌套列表中一次得到一个列表(
对于cage in cage
),然后你可以使用另一个for来读取单个值。
[1:]
表示跳过第一个元素

grid = [[0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4], [0, 1, 2, 3, 4]]
cages = [[9, 3, 0, 5, 6], [7, 2, 1, 2], [10, 3, 3, 8, 13], [14, 4, 4, 9, 14, 19], [3, 1, 7], [8, 3, 10, 11, 16], [13, 4, 12, 17, 21, 22], [5, 2, 15, 20], [6, 3, 18, 23, 24]]

noCages = 9
total = 0
i = 0
index = 2
while i < noCages:
   while index < len(i):
      total = total + grid[index/5][index%5]
      print grid[index/5][index%5]
      index += 1
   print total
   i += 1
   total = 0

您的预期输出是什么?不确定您使用的是Python2还是Python3,但在Python3中,您不能使用[index/5]作为列表索引,因为这将返回一个浮点值。如果您试图获取框架[0][1到4]的总和,您可以使用sum(框架[0][1:5])。使用sum函数,您可以将列表中的任何部分相加,而无需进行迭代。为什么
while
循环?for对于您的用例来说不是更有意义吗?
total = 0
for cage in cages:
    for value in cage[1:]:
        total += value
print(total)