如何将列表中的元素用作 range() 中的参数?
How can I use an element in a list as a parameter in range()?
所以我有一个 for 循环 for i in range(0, arr[0]):
并且我希望 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)
这是一个挑战here
diagonalDifference函数的用途可以在link.
中找到
试试这个:
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 挑战赛
所以我有一个 for 循环 for i in range(0, arr[0]):
并且我希望 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)
这是一个挑战here
diagonalDifference函数的用途可以在link.
中找到试试这个:
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 挑战赛