【问题标题】:How to iterate backwards in a matrix from a specific point?如何从特定点在矩阵中向后迭代?
【发布时间】:2021-03-13 07:47:41
【问题描述】:

如果我有一个 3x5 矩阵,并且我想从点 (i,j) 向后迭代到矩阵的开头,那么最好的方法是什么? 示例:

matrix = [[1,0,2,0,1],
          [0,0,0,0,0],
          [0,0,1,0,0]]

示例:矩阵中从 (1,1) 到 (0,0) 我们将打印输出:0, 0, 1, 0, 2, 0, 1

我尝试了以下代码,但这不起作用,因为它最终“切片”了矩阵。

    for row in reversed(range(i+1)):
        for col in reversed(range(j+1)):

【问题讨论】:

  • “从点 (i,j) 向后迭代到矩阵的开头”实际上是什么意思?含义对您来说似乎很明显,但有多种可能的解释。
  • 您能否以在矩阵 [[1,2,3,4,5],[6,7,8,9,10],[11,12] 上向后迭代的形式提供所需的输出,13,14,15]] 从 i,j=3,1 开始
  • 请通过intro tourhelp centerhow to ask a good question 了解本网站的运作方式并帮助您改进当前和未来的问题,从而帮助您获得更好的答案。 “告诉我如何解决这个编码问题?”与 Stack Overflow 无关。您必须诚实地尝试解决方案,然后就您的实施提出具体问题。 Stack Overflow 无意取代现有的教程和文档。
  • 您还必须清楚地定义您的问题。再次,请参阅“如何问...”。
  • "从点 (i, j) 向后迭代到矩阵的开头"。基本上以顺序方式从 (i, j) 到 (0,0) 进行交互。我将进一步解释。示例:矩阵中从 (1,1) 到 (0,0) 我们将打印出:0, 0, 1, 0, 2, 0, 1

标签: python matrix


【解决方案1】:
d = [[print(matrix[row-i-1][col-j-1])for j in range(col)]for i in range(row)]

【讨论】:

  • 我认为这可能是一个很好的答案,但如果你解释一下它会更有帮助。
  • 矩阵 = [[1,0,2,0,1], [0,0,0,0,0], [0,0,1,0,0]] 行 = 3 col = 5 for i in range(row): for j in range(col): print(row-i-1,col-j-1) # index_row ,index_col
猜你喜欢
  • 1970-01-01
  • 2016-08-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-08-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多