如何将列表中的元素用作 range() 中的参数?



所以我有一个 for 循环for i in range(0, arr[0]):,我希望range()函数的 stop 参数根据数组中第一个元素的值是可变的。 但是,当我这样做时,即使arr[0]的值是一个整数,python也会返回并给我一个错误,说TypeError: 'list' object cannot be interpreted as an integer。 如何将列表中的此元素转换为整数或找到将其值用作参数的另一种方法?

我还使用相同的值来递增和递减此循环中的变量。

谢谢!

完整代码:

def diagonalDifference(arr):
stopInt = arr[0]
primary = 0
secondary = 0
pArrIndex = 1
sArrIndex = -1
for i in range(0, stopInt):
primary += arr[pArrIndex]
pArrIndex += arr[0]
for i in range(0, stopInt):
secondary += arr[sArrIndex]
sArrIndex -= arr[0]
return abs(primary - secondary)

这是一个挑战

对角线差分函数的用途可以在该链接中找到。

试试这个:

def diagonalDifference(arr):
a=sum(v[i] for i,v in enumerate(arr))
b=sum(v[-i] for i,v in enumerate(arr,1))
return abs(a - b)

我这样做是因为我阅读了黑客等级挑战

最新更新