0
def makeInverseIndex(strlist):
return { s:{ j if strlist[i] in strlist[j].split() for j in range(len(strlist)) }
for (i,s) in enumerate(strlist) }
Python中的代碼中的語法錯誤是什麼?無法找到代碼中的語法錯誤?
def makeInverseIndex(strlist):
return { s:{ j if strlist[i] in strlist[j].split() for j in range(len(strlist)) }
for (i,s) in enumerate(strlist) }
Python中的代碼中的語法錯誤是什麼?無法找到代碼中的語法錯誤?
您不能在for
的左邊有一個if
語句,除非您還有一個else
零件(三元運算符)。您需要將if strlist[i] in strlist[j].split()
向右移動,
def makeInverseIndex(strlist):
return {s:{j for j in range(len(strlist)) if strlist[i] in strlist[j].split()}
for (i,s) in enumerate(strlist)}
您實際上並不需要'i'; 'strlist [i]'可以用's'替換,所以你可以放下'enumerate'並且在外部理解中遍歷'strlist'。 – user2357112
類似的,你可以用枚舉來替換range-len,如果在s2.split()中爲s中的s,生成'{s:{i for i,s2 in enumerate(strlist)')。 – user2357112