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

时间:2018-09-25 01:12:17

标签: python python-3.x list range element

所以我有一个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)

这是挑战here

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

1 个答案:

答案 0 :(得分:1)

尝试一下:

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)

之所以这样做,是因为我阅读了Hacker-rank挑战