【发布时间】:2019-05-20 04:04:44
【问题描述】:
我有一个问题,涉及以列表形式获取方阵并找到主对角线和辅助对角线之间差异的绝对值。例如,给定以下列表:
test_matrix = [[11, 2, 4], [4, 5, 6], [10, 8, -12]]
正确的解决方案返回
15
我的解决方案是:
def diagonalDifference(test_matrix):
primary_diag = 0
secondary_diag = 0
for i, row in enumerate(test_matrix):
for j, val in enumerate(row):
if (i == j) and ((i + j) == len(test_matrix) - 1):
secondary_diag += val
primary_diag += val
elif i == j:
primary_diag += val
elif (i + j) == len(test_matrix) - 1:
print('secondary_diag:' + str(val))
secondary_diag += val
return abs(primary_diag - secondary_diag)
效果很好,但我希望有人能告诉我是否有一种方法可以仅使用一个 for 循环来重现解决方案。也欢迎任何其他可以进行的改进。
【问题讨论】:
标签: python-3.x list for-loop matrix