Python 在数组中查找匹配的数字并将结果打印到新数组

Python 在数组中查找匹配的数字并将结果打印到新数组,python,arrays,Python,Arrays,试图找出为什么我产生的代码不是以下问题的答案: 给定两个数组,一个包含用户输入,另一个包含正确输入,返回一个数组,表示用户输入何时与数字1匹配正确输入,何时与-1匹配错误输入 下面是我的代码 newArr = [] def correct_stream(user, correct): for i in user: for j in correct: if i == j: newArr.append(1)

试图找出为什么我产生的代码不是以下问题的答案:

给定两个数组,一个包含用户输入,另一个包含正确输入,返回一个数组,表示用户输入何时与数字1匹配正确输入,何时与-1匹配错误输入

下面是我的代码

newArr = []
def correct_stream(user, correct):
    for i in user:
        for j in correct:
            if i == j:
                newArr.append(1)
            else:
                newArr.append(-1)
                
            return newArr
return语句位于第二个for循环内,只执行一次

newArr = []
def correct_stream(user, correct):
    for i in user:
        for j in correct:
            if i == j:
                newArr.append(1)
            else:
                newArr.append(-1)
                
            return newArr #this executes after the if statement runs only once, leading to an array with size 1
Python是基于正确的语法构建的,虽然某些方面是灵活的,但缩进是严格的。括号不会分开作用域,缩进会分开作用域

newArr = []
def correct_stream(user, correct):
    for i in user:
        for j in correct:
            if i == j:
                newArr.append(1)
            else:
                newArr.append(-1)
                
    return newArr #this now executes after the whole for loop above is finished

你遇到了什么问题?您对任何错误有疑问吗?请提供预期错误。显示中间结果与您预期的不同之处。您可以通过使用策略性放置的打印语句跟踪操作来实现这一点。请参阅本文以获取帮助。我想您的返回不应该在for循环中。作为提示,您的代码存在多个问题。第一个调试步骤是您的责任;如果你陷入困境,我们会帮助你。