Как я могу использовать элемент в списке в качестве параметра в range ()? - PullRequest
0 голосов
/ 25 сентября 2018

Итак, у меня есть цикл 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)

Это для вызова здесь

Цель функции diagonalDifference можно найтипо этой ссылке.

1 Ответ

0 голосов
/ 25 сентября 2018

Попробуйте это:

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)

Я сделал это, потому что я прочитал задание на звание Хакера

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...