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