【问题标题】:Nested loops with matrix - why does this second matrix at all?带有矩阵的嵌套循环 - 为什么第二个矩阵呢?
【发布时间】:2012-02-15 19:32:44
【问题描述】:

这对我来说还没有意义。所以第一个 while 循环运行并打印 matrix[0][0]、matrix[0][1]、matrix[0][2] 和 matrix[0][3] 直到 j=4 并且不小于 @ 987654321@。好的,但现在它会弹出并返回到while i<len(matrix):。这不会让它再次读取j=0 并直接返回嵌套的while循环吗?

matrix = [[4,5,6,7],[2,4,9,3]]
i=0
while i<len(matrix):
    j=0
    while j<len(matrix[i]):
        print matrix[i][j]
        j=j+1
    i=i+1

【问题讨论】:

  • 您可以编辑您的问题以修复被截断的句子。
  • 这会打印出4 5 6 7 2 4 9 3,这正是我所期望的。你认为它会做什么?
  • 在 j 不小于 len(matrix[i]) 之后:似乎读取的下一行是 i=i+1,而 j
  • 在实践中,使用for 循环可能会更好。特别是如果您利用列表的可迭代特性。 for row in matrix: ` for item in row:` ` print item`

标签: python matrix while-loop


【解决方案1】:

是的,这正是它的作用。

通过添加打印语句自己查看:

matrix = [[4,5,6,7],[2,4,9,3]]
i=0
while i<len(matrix):
    j=0
    while j<len(matrix[i]):
        print 'i = {}, j = {}, element = {}'.format(i,j,matrix[i][j])
        print matrix[i][j]
        j=j+1
    i=i+1

顺便说一句,这是在 python 中循环的一种非常不合 Python 的方式。这是等效的,并且更适合该语言:

matrix = [[4,5,6,7],[2,4,9,3]]
for row in matrix:
  for element in row:
    print element

【讨论】:

    猜你喜欢
    • 2020-05-25
    • 1970-01-01
    • 2012-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-27
    • 2021-03-30
    • 1970-01-01
    相关资源
    最近更新 更多