-3

为什么我尝试运行时“else”部分标记为红色?它说“无效的语法”。

def interseccion(lista, lista2, resultado=[]):
if lista != []:
    if lista[0] in lista2:
        return interseccion(lista[1:], lista2, resultado+[lista[0]]
    else:                 
        return interseccion(lista[1:], lista2, resultado]

return resultado
4

2 回答 2

2

具体错误是由于缺少右括号:

    return interseccion(lista[1:], lista2, resultado+[lista[0]] ) <-- that parenthesis is needed
于 2013-10-10T02:46:03.880 回答
0

您必须在两个返回语句中关闭括号:

return interseccion(lista[1:], lista2, resultado+[lista[0]])

return interseccion(lista[1:], lista2, resultado)

if lista != []:更惯用地写为if lista:.

而且我不太确定你是否想resultado默认成为一个空列表!也许应该None改为默认值,然后您可以指定:

if resultado is None:
    resultado = []

一开始。

于 2013-10-10T02:49:01.493 回答