如何对一个列表中的两行求和?

2024-03-28 09:08:10 发布

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

我想把清单上的第三行和第四行相加? 我在找最简单的方法? 我知道这似乎很容易,但我找不到类似的例子,因为我认为我没有使用正确的关键字!你知道吗

[0.001, 0.017000000000000001, 4.0, 75.0]
[5352984.0, 23194715.0, 8.0, 150.0]
[2370914.0, 11533745.0, 21.0, 396.0]
[0.39500000000000002, 0.68100000000000005, 68.0, 1296.0]
[0.46400000000000002, 0.69099999999999995, 69.0, 1307.0]
[0.0, 0.001, 12.0, 226.0]
[0.0, 0.001, 10.0, 194.0]
[0.055, 0.22600000000000001, 7.0, 136.0]
[0.055, 0.109, 10.0, 181.0]
[0.001, 0.037999999999999999, 29.0, 556.0]
[0.0030000000000000001, 0.14099999999999999, 46.0, 873.0]
[0.0, 1.0, 15.0, 287.0]
[0.0, 0.0, 6.0, 108.0]
[0.0, 0.0, 29.0, 556.0]
[0.0, 0.024, 46.0, 873.0]
[7086684.0, 68448914.0, 3.0, 53.0]

Tags: 方法关键字例子
2条回答

假设您的列表如下:

this_list = [[0.001, 0.017000000000000001, 4.0, 75.0],
             [5352984.0, 23194715.0, 8.0, 150.0],
             [2370914.0, 11533745.0, 21.0, 396.0],
             [0.39500000000000002, 0.68100000000000005, 68.0, 1296.0],
             [0.46400000000000002, 0.69099999999999995, 69.0, 1307.0],
             [0.0, 0.001, 12.0, 226.0],
             [0.0, 0.001, 10.0, 194.0],
             [0.055, 0.22600000000000001, 7.0, 136.0],
             [0.055, 0.109, 10.0, 181.0],
             [0.001, 0.037999999999999999, 29.0, 556.0],
             [0.0030000000000000001, 0.14099999999999999, 46.0, 873.0],
             [0.0, 1.0, 15.0, 287.0],
             [0.0, 0.0, 6.0, 108.0],
             [0.0, 0.0, 29.0, 556.0],
             [0.0, 0.024, 46.0, 873.0],
             [7086684.0, 68448914.0, 3.0, 53.0]]

你的“第三排”是这样的:

[ 4.,  8., 21., 68., 69., 12., 10.,  7., 10., 29., 46., 15.,  6., 29., 46.,  3.]

然后你可以简单地:

import numpy as np
np_list = np.array(this_list)
# sum in a new row
new_row = np.sum([np_list[:,2], np_list[:,3]], axis=0)

# sum each elements of the 3rd and 4rd rows separetadly
row3, row4 = np.sum([np_list[:,2], np_list[:,3]], axis=1)

可以为此创建一个函数。你知道吗

def RowSum (gridlist,row):
        sumcount=0
        for sublist in gridlist: # iterates through every sublist
                   sumcount+=sublist[row-1]
        return sumcount

对于第3行和第4行的求和工作:

rsum= RowSum(gridlist,3)+RowSum(gridlist,4)
print(rsum)

请注意,此函数的设计要记住行号从1开始,而不是从0开始。你知道吗

谢谢:)

相关问题 更多 >