3 回答
TA贡献1725条经验 获得超7个赞
您用于len(rix)评估行数并len(rix[0])评估矩阵的列数
所以
if len(rix) <= put[0]:
return false
elif len(rix[0]) <= put[1]:
return false
else:
return true
TA贡献1815条经验 获得超6个赞
您还必须考虑负指数。
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
TA贡献1795条经验 获得超7个赞
将你的函数设计成通用的;它应该采用表示您要检查其边界的行的参数row_n
(行号)。检查 是否row_n
存在于您rix
的列表中。然后,将您put
的第二个元素(表示预期的行长度)与列表中的原始 row_n
长度进行比较rix
。
根据您的情况,您应该比较put
的第二个元素是否小于或等于rix
的row_n
长度,然后返回您的布尔值。
添加回答
举报