首页 > 解决方案 > 如何将列表中的元素用作 range() 中的参数?

问题描述

所以我有一个 for 循环for i in range(0, arr[0]):,我希望函数的 stop 参数range()根据数组中第一个元素的值是可变的。然而,当我这样做时,即使 的值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)

是一个挑战

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

标签: pythonpython-3.xlistrangeelement

解决方案


尝试这个:

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)

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


推荐阅读