如何在此代码中出现语法错误?

时间:2018-12-17 16:12:39

标签: python python-3.x

在下面的代码中,我在selected_rows和selected_pa​​tch中的':'附近遇到语法错误 我不明白该如何纠正 有人可以帮我吗?

def selectNeighboringPatch(matrix, pos_row, pos_col, ex_len):
    selected_rows = matrix([ range(pos_row - ex_len , pos_row + ex_len+1) , : ])
    selected_patch = selected_rows([ : , range(pos_col - ex_len , pos_col + ex_len + 1)])
    return selected_patch
selectNeighboringPatch( matrix = ([[1,1,1,1] ,[1,1,1,1] ,[1,1,1,1] ,[1,1,1,1]]) ,pos_row = 0 ,pos_col = 0 , ex_len = 2 )

1 个答案:

答案 0 :(得分:0)

matrix([...])

是使用列表文字调用可调用对象的语法。您通常会将此视为

sum([1, 2, 3, 4])

括号中的表达式

selected_rows = matrix([ range(pos_row - ex_len , pos_row + ex_len+1) , : ])

不是有效的列表文字,这是语法错误的原因。你可能是说

selected_rows = matrix[ range(pos_row - ex_len , pos_row + ex_len+1) , : ]

:有一个有效的python表达式(等效于slice(None)),但不要指望多维切片能像在大熊猫数据帧上那样作用于常规python列表。