Python3函数未返回完整列表

时间:2018-12-20 15:18:08

标签: python list function

我试图制作一个带有输入列表参数并在内部做一些数学运算的函数,返回一个包含从数学运算收集到的数据的新列表,但结果始终是一个空列表。我需要如何将列表传递给函数才能使其正常工作?

inputArray = [12,6,7,3,8]

def derive (self, *inputArray):

    outputarray = []

    for i in inputArray:
        operatorA = inputArray[i]
        operatorB = inputArray[i+1]
        if operatorA > operatorB:
            operation = operatorA - operatorB
            outputarray.append(operation)
        else:
            operation = operatorB - operatorA
            outputarray.append(operation)
    print(outputarray)

 derive(inputArray)

1 个答案:

答案 0 :(得分:2)

您滥用for。要遍历索引,应使用for i in range(len(inputArray) - 1)。这将遍历索引列表。

此外,您创建了一个需要2个参数的函数,但仅用一个参数调用了该函数,因此我删除了self

最后,我相信您尝试使用*来引用字符串地址。那是C / C ++语法,但不适用于python。相反,您可以将值返回到原始字符串:

inputArray = [12,6,7,3,8]

def derive (inputArray):

    outputarray = []

    for i in range(len(inputArray)-1):
        operatorA = inputArray[i]
        operatorB = inputArray[i+1]
        if operatorA > operatorB:
            operation = operatorA - operatorB

        else:
            operation = operatorB - operatorA

        outputarray.append(operation)
    print(outputarray)
    return(outputarray)

inputArray = derive(inputArray)