【问题标题】:Check if matrix index exists检查矩阵索引是否存在
【发布时间】:2013-05-28 04:41:31
【问题描述】:

如何确认给定矩阵的索引存在?

例如:

matrix = [[1,2,3],[2,3,4][5,6,7]]

matrix[1][2]
4

但是,如果我执行 matrix[3][3] 会出错。

我知道我能做到:

try:
  array[idx]
except IndexError:

但是如果idx 是-1 呢?索引不存在,但在 python -1 中返回索引 0。 我该如何检查?

谢谢。

【问题讨论】:

  • 为什么-1会给你一个错误? matrix[-1][-1] 在这里给我7,.
  • 是的,但我希望 -1 是矩阵中的索引..(我知道它代表 0 索引..)

标签: python matrix indexing cell exists


【解决方案1】:
try:
    if idx1 < 0 or idx2 < 0: raise IndexError()
    array[idx1][idx2]
except IndexError:
    # do stuff

【讨论】:

    【解决方案2】:
    def dictify(mat):
        return {
            (i, j): cell
            for i, row in enumerate(mat)
            for j, cell in enumerate(row)
        }
    
    matrix = dictify([[1,2,3],[2,3,4], [5,6,7]])
    
    assert (3, 3) not in matrix
    assert (1, 0) in matrix
    
    print matrix[1, 1]
    

    【讨论】:

      猜你喜欢
      • 2017-04-11
      • 1970-01-01
      • 2021-07-22
      • 2012-11-30
      • 2015-09-16
      • 1970-01-01
      • 1970-01-01
      • 2013-05-17
      • 1970-01-01
      相关资源
      最近更新 更多