我创建了一个名为rix
的矩阵。
rix = [[1,2,3],[4,5,6][7,8,9]]
作为输入,我有变量put
,它是长度为2
的单个列表,代表了矩阵的位置。我正在努力的部分是如何检查变量put代表第一列中的位置之一?
答案 0 :(得分:0)
将您的功能设计为通用;它应使用参数row_n
(行号),该参数表示您要检查其边界的行。检查row_n
列表中是否存在rix
。然后,将put
的第二个元素(表示预期行长的 )与{em>原始 row_n
的长度进行比较。 {1}}列表。
根据您的情况,您应该比较rix
的第二个元素是否小于put
的{{1}}长度,然后返回布尔值。
答案 1 :(得分:0)
您使用len(rix)
来评估行数
和len(rix[0])
来评估矩阵的列数
如此
if len(rix) <= put[0]:
return false
elif len(rix[0]) <= put[1]:
return false
else:
return true
答案 2 :(得分:0)
您还必须考虑负面指数。
def in_first_col(put, list2D):
row_idx, col_idx = put
# return False if we can't get the row
try:
row = list2D[row_idx]
except IndexError:
return False
# return False if row is empty
# return False if col_idx does not refer to first element of row
return row and (col_idx == 0 or col_idx == -len(row))
演示:
>>> rix = [[1,2,3],[4,5,6],[7,8,9]]
>>> in_first_col([1,1], rix)
>>> False
>>> in_first_col([2,0], rix)
>>> True
>>> in_first_col([5,0], rix)
>>> False
>>> in_first_col([-2,-3], rix)
>>> True