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