编写函数求任意方阵每行、每列、对角线元素之和。
时间: 2023-08-07 15:03:40 浏览: 101
好的,以下是实现该功能的 Python 代码:
```python
def sum_matrix(matrix):
n = len(matrix)
row_sums = [sum(row) for row in matrix]
col_sums = [sum(col) for col in zip(*matrix)]
diagonal1_sum = sum(matrix[i][i] for i in range(n))
diagonal2_sum = sum(matrix[i][n-i-1] for i in range(n))
return row_sums, col_sums, diagonal1_sum, diagonal2_sum
```
该函数接受一个方阵作为参数,返回一个包含四个元素的元组,分别表示每行、每列、主对角线、副对角线的元素和。
其中,`row_sums` 和 `col_sums` 分别通过列表推导式计算每行和每列的元素和,`zip(*matrix)` 用于将矩阵转置,从而方便地计算每列的元素和;`diagonal1_sum` 和 `diagonal2_sum` 分别通过循环计算主对角线和副对角线的元素和。
示例用法:
```python
matrix = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
row_sums, col_sums, diagonal1_sum, diagonal2_sum = sum_matrix(matrix)
print(row_sums)
print(col_sums)
print(diagonal1_sum)
print(diagonal2_sum)
```
输出结果为:
```
[6, 15, 24]
[12, 15, 18]
15
15
```
注意,该函数的实现并不是最优解,可能存在一些效率上的问题,但足以满足一般的需求。