def intersect(seq,seq1):
res=[]
for x in seq:
if x in seq1:
res.append(x)
return res
return res仅在函数调用中返回['s']
但seq="spam"
和seq1="scam"
;为什么它不会在结果中返回['s','a','m']
。
谢谢
答案 0 :(得分:3)
因为行
return res
位置不正确(换句话说,它有错误的缩进)。它应该在for
循环之外,所以你的程序首先完成循环,然后返回结果:
def intersect(seq, seq1):
res = []
for x in seq:
if x in seq1:
res.append(x)
return res
注意:请记住,缩进在Python中非常重要,因为它用于确定语句的分组。
答案 1 :(得分:1)
您的return res
缩进错误。它应该是:
def intersect(seq,seq1):
res=[]
for x in seq:
if x in seq1:
res.append(x)
return res
>>> intersect('scam','spam')
['s','a','m']
你之前做的是你附加一个值然后返回它。当您附加res
值时,您希望返回all
。这种情况发生在 for
循环之后,就在您放置return res
行时。因此,它应与for
语句具有相同的缩进。