如何在Python中连接N个列表并对列表的N个元素求和?

如何在Python中连接N个列表并对列表的N个元素求和?,python,Python,我目前正在为灌溉建立一个定价模型。 下面的代码给出了单选或多选的价格。 进行选择后,有一个输入,可以在其中指定先前选择的数量 如果提供了两个选项(7,8)和(2,2),则将打印(示例): 我如何使它打印出N个列表+所有N个列表的总和,而不管输入是什么?像这样: 2 Solenoid [62.5, 175, 237.50] 2 Valve [125, 175, 300.00] Total: [187.5, 350, 537.50] 我尝试使用: def sum_elements(lstlst):

我目前正在为灌溉建立一个定价模型。 下面的代码给出了单选或多选的价格。 进行选择后,有一个输入,可以在其中指定先前选择的数量

如果提供了两个选项(7,8)和(2,2),则将打印(示例):

我如何使它打印出N个列表+所有N个列表的总和,而不管输入是什么?像这样:

2 Solenoid
[62.5, 175, 237.50]
2 Valve
[125, 175, 300.00]
Total:
[187.5, 350, 537.50]
我尝试使用:

def sum_elements(lstlst):
    return [sum(tup) for tup in zip(*lstlst)]

def main(lstlst):
    print(*lstlst, sum_elements(lstlst), sep="\n")

使用此代码,我得到float not iterable错误:

   return [sum(tup) for tup in zip(*lstlst)]
TypeError: 'float' object is not iterable
我知道我得到这个错误是因为我将lst应用于一个事物列表。 我的问题(我假设)是在应用lst函数之前没有连接N个列表

from itertools import zip_longest


def sum_elements(*lsts):
    return [sum(tup) for tup in zip_longest(*lsts, fillvalue=0)]


def main():
    l1 = [62.5, 175, 237.50]
    l2 = [125.0, 175.0, 300.0]
    l3 = [12.0, 165.0, 300.0, 12]

    print(sum_elements(l1, l2, l3))


if __name__ == "__main__":
    main()
测试:

$ python test.py
[199.5, 515.0, 837.5, 12]

什么是
lstlst
?我相信您上面提供的大部分代码都不是真正相关的。请把你的代码写出来
from itertools import zip_longest


def sum_elements(*lsts):
    return [sum(tup) for tup in zip_longest(*lsts, fillvalue=0)]


def main():
    l1 = [62.5, 175, 237.50]
    l2 = [125.0, 175.0, 300.0]
    l3 = [12.0, 165.0, 300.0, 12]

    print(sum_elements(l1, l2, l3))


if __name__ == "__main__":
    main()
$ python test.py
[199.5, 515.0, 837.5, 12]