【发布时间】:2019-10-17 05:08:30
【问题描述】:
就编程而言,我是一个完全的初学者,我刚刚开始学习我的第一门语言,即 Python。最近,我一直在练习在 Hackerrank 中解决问题,但遇到了一些“对角线差”问题。
这个问题对我来说是全新的,所以我在网上搜索了一些答案,并遇到了有人在 github 中制作的这个功能。
def diagonalDifference(arr):
prim =0
sec=0
length = len(arr[0])
i=0 #what does i=0 even do here?
for count in range(length):
prim += arr[count][count] #don't understand what "[count][count]" mean
sec += arr[count][(length-count-1)] #don't understand this either
return abs(prim-sec)
【问题讨论】:
-
您是否尝试过调试它,看看会发生什么以及每个步骤中的变量值是什么?
-
查看函数采用的输入类型。
-
i什么都不做,你可以删除它。arr[x][y]表示arr的x, y位置的元素(我假设它是一个二维方阵)。 -
该函数似乎接受了一个复杂的参数
arr。理解它的关键是为该参数提供一个或多个示例值。 -
括号通常用于索引容器。例如,如果容器是嵌套列表
lst = [["a", "b"], ["c", "d"]],则lst[0][1]返回'b'(因为[["a", "b"], ["c", "d"]][0]->['a", "b"][1]->"b")。arr建议您有一个数组。请注意,numpy 数组可以是 extended 超出基本索引。关于i,它没有在其他任何地方使用,所以它什么也不做。通常,它在循环外保存一个初始计数。
标签: python