Python 3在数组中添加对角线

时间:2016-03-30 15:45:24

标签: arrays list function python-3.x diagonal

我似乎无法找到任何关于在4x4阵列中添加两个对角线的信息。

row = 4
column = 4
lis1 = [23.5, 30.1, 56.2, 11.9]
lis2 = [45.1, 8.9, 77.3, 54.1]
lis3 = [6.6, 7.7, 8.8, 2.2]
lis4 = [9.9, 8.9, 7.8, 23.6]
array = [lis1, lis2, lis3, lis4]

def diagonalSum(array):
    count = 0
    for i in range (len(array)):
        count += array[i][i]
    print ('The total of the elements in both diagonals equals  %.2f' %(count))
    return count

当我调用该函数时,它会打印lis1[0]+lis2[1]+lis3[2]+lis4[3]的总数,但我还需要它来计算lis4[0]+lis3[1]+lis2[2]+lis1[3]的总数并显示两个对角线的总和。有什么建议吗?

1 个答案:

答案 0 :(得分:1)

您只计算从左上角到右下角的对角线,在本例中为0,0 1,1 2,2 3,3。您还需要计算从右上角到左下角的另一个对角线,或0,3 1,2 2,1 3,0

要使用一个循环,您可以添加另一个自己递增或递减的索引,如下所示

j = len(array) - 1
for i in range(len(array)):
    # diagonal from top left to bottom right
    count += array[i][i]
    # diagonal from bottom left to top right
    count += array[j][i]
    j -= 1