可以使用数组或者递归的方式实现。
数组方式示例:
# 构造数组
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
# 依次输出每一行的和,并使用上一行的和作为辅助变量
helper = 0
for i in range(len(a)):
row_sum = sum(a[i])
print('第', i+1, '行的和:', row_sum+helper)
helper = row_sum
递归方式示例:
# 构造二维列表
a = [[1, 2, 3],
[4, 5, 6],
[7, 8, 9]]
# 编写递归函数
def row_sum_helper(i, j):
# 当前行的和
row_sum = sum(a[i][:j+1])
# 如果已经是第一行,则返回当前行的和
if i == 0:
return row_sum
# 否则递归调用
else:
return row_sum + row_sum_helper(i-1, j+1)
# 依次输出每一行的和,并使用上一行的和作为辅助变量
for i in range(len(a)):
helper = row_sum_helper(i-1, 0) if i > 0 else 0
row_sum = row_sum_helper(i, 0)
print('第', i+1, '行的和:', row_sum+helper)
以上两种方式都可以实现不使用循环结构,利用前一行数据的功能。