使用 python 有效地总结从 cherrypy 网络表单收到的值

Efficiently sum up values received from cherrypy web form using python

我如何总结我从 cherrypy 获得的所有 kwarg 值,注意到

kwarg 值的数量未知, kwarg 值是从网络表单提交的 kwarg 值看起来像 kwargs['asset_cost_1'],其中数字从 1 开始递增,可以达到 100 或更高。

以下是示例,但肯定行不通,而且我认为效率不高

#first determine kwargs.get('asset_cost_1') has been received
asset_cost = 0
if kwargs.get('asset_cost_1'):
                for x in range(100):
                    kwarg = "kwargs['asset_cost_" + x + "']"
                    asset_cost = kwarg + asset_cost

这应该可以解决问题:

sum(value for key, value in kwargs.items() if key.startswith('asset_cost_'))

如果你想让它丑一点,你可以这样做:

total = 0
for key, value in kwargs.items():
    if key.startswith('asset_cost_'):
        total += value

如果你的例子是准确的,这里是一个相当脏的衬垫:

sum(value for key, value in kwargs.items() if key.startswith('asset_cost_') and kwargs["asset_allocation_opex_" + key.split('_')[-1]] == "on")