【问题标题】:How to create for loop for submatrix and print submatrix如何为子矩阵创建for循环并打印子矩阵
【发布时间】:2020-08-01 07:59:08
【问题描述】:

Image

我正在尝试为子矩阵创建 for 循环,比如说

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

我想将子矩阵从矩阵[2][3] 打印到矩阵[4][4],其中索引从 1 开始。

输出我所期望的 -

    [2, 2]
    [3, 4]
    [3, 4]

【问题讨论】:

  • 除非您创建特定函数来处理此行为,否则您将无法让索引从 1 开始。
  • 这是numpy 还是list
  • @SayanipDutta 列表,不是 Numpy
  • 这能回答你的问题吗? Python: slicing a multi-dimensional array
  • 为什么不在 for 循环中对索引进行硬编码?

标签: python


【解决方案1】:

您可以为这些坐标使用范围,请记住,python 中的列表索引是从零开始的,ranges 包含起始索引但不包含结束索引:

for row in range(2, 5):
    for col in range (3, 5):
       print(matrix[row - 1][col - 1], end=' ')
    print()

【讨论】:

    【解决方案2】:

    这可以工作

    print([x[2:] for x in matrix[1:]])

    【讨论】: