Python计算lis中的行和

2024-03-29 01:48:42 发布

您现在位置:Python中文网/ 问答频道 /正文

我想写一段代码来计算列表中每一行元素的和,并返回一个新的行和列表。例如

def row_sums(square):

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

这将给出[10, 26, 42, 58]的输出,因为第一行的和等于10,第二行的和等于26,依此类推。但是,我不想使用内置的sum函数来执行此操作。我该怎么做呢?提前谢谢。


Tags: 函数代码元素列表def内置rowsum
3条回答

你也可以用comprehensionreduce来完成:

[reduce(lambda x, y: x + y, item) for item in square]

编写自己的求和函数

模块functools有一个有用的^{},可以用来编写自己的sum函数。如果你对^{}很满意,你可以这样做:

lst = [0,1,2,3,4,5]

也就是说sum(lst)就是15。但是,您自己使用reduce的sum函数可能类似于:

from functools import reduce

reduce(lambda x,y: x + y, l)

它也会给出15。你应该可以自己写剩下的(即在另一个处理行的列表中)。

一段简单的代码,用于计算列表中每行元素的总和。

square = [
   [1, 2, 3, 4],
   [5, 6, 7, 8],
   [9, 10, 11, 12],
   [13, 14, 15, 16]
]
su=[sum(i) for i in square]
print (su)

输出:

[10, 26, 42, 58]

相关问题 更多 >