Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 数组对角和_Python_Arrays_Python 3.x_Sum - Fatal编程技术网

Python 数组对角和

Python 数组对角和,python,arrays,python-3.x,sum,Python,Arrays,Python 3.x,Sum,我在这方面很新,必须为一个项目做这件事,所以请记住这一点 我需要编写一个函数sumOfDiagonal,它有一个类型为list的参数 该列表是一个4x4二维整数数组(4行4列整数) 函数必须返回从右上角到左下角对角线位置的整数之和 我没有尝试过任何东西,因为我不知道从哪里开始,所以我希望得到一些指导。因为您还没有指定语言(而且这可能是课堂作业),所以我必须提供伪代码。给定4x42D数组,基本思想是使用指定索引的循环,并使用该索引获得两个维度中的正确元素。假设我们拥有阵列:

我在这方面很新,必须为一个项目做这件事,所以请记住这一点

我需要编写一个函数
sumOfDiagonal
,它有一个类型为list的参数

该列表是一个4x4二维整数数组(4行4列整数)

函数必须返回从右上角到左下角对角线位置的整数之和


我没有尝试过任何东西,因为我不知道从哪里开始,所以我希望得到一些指导。

因为您还没有指定语言(而且这可能是课堂作业),所以我必须提供伪代码。给定4x42D数组,基本思想是使用指定索引的循环,并使用该索引获得两个维度中的正确元素。假设我们拥有阵列:

           [][0]  [][1]  [][2]  [][3]
           -----  -----  -----  -----
[0][]          1      2      3      4
[1][]          5      6      7      8
[2][]          9     10     11     12
[3][]         13     14     15     16
我们要求左上角到右下角对角线的和(
1+6+11+16
)(1)。这大概是:

def sumOfDiagonal (arr, sz):
    sum = 0
    for i = 0 to sz - 1 inclusive:
        sum = sum + arr[i][i]
    return sum
这是使用访问数组的常规方法。如果你的数组实际上是一个描述列表(比如一个包含16个元素的链表),那么你只需要调整获取“数组”元素的方式

例如,一个16个元素的列表需要获取节点0、5、10和15,这样您就可以在每次累积之后跳过四个节点来遍历该列表

举个例子,这里有一些Python代码(2),用于执行从左上到右下的变体,它按预期输出
34(1+6+11+16)

def sumOfDiagonals(arr):
    sum = 0
    for i in range(len(arr)):
        sum += arr[i][i]
    return sum

print(sumOfDiagonals([[1,2,3,4],[5,6,7,8],[9,10,11,12],[13,14,15,16]]))

(1) 要做到从右上到左下,只需将第二个术语更改为
sz-i-1



(2) 当您希望能够测试伪代码时,Python是理想的伪代码语言,只要您远离其更复杂的角落:-)

在什么环境/语言中?感谢它是Python 3。完全忘记提到/标记为python3