使用 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")
我如何总结我从 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")