我在创建Mako模板时遇到问题,该模板会获取一个数字列表并输出它们的总和。例如:
list = [1, 2, 3, 4, 5]
输出:
1 + 2 + 3 + 4 + 5
我希望列表作为参数传递给模板。
是使用python ' + '.join(list)
解决这个问题的方法吗?
我知道我们可以使用\
来逃避新的行字符,所以我可以在循环中完成它,但是需要特别注意最后的+
,这非常难看。 / p>
谢谢!
答案 0 :(得分:0)
内置函数sum()
应该可以正常工作,请参阅Python doc for sum
您的模板正文应该只包含
def template(context, numbers_list):
return sum(numbers_list)
或者,如果数字以字符串形式传递:
def template(context, numbers_list):
return sum(int(x) for x in numbers_list)
答案 1 :(得分:0)
首先,请注意您应该在内置类型之后永远命名变量。
我指的是您将列表([1,2,3,4,5]
)命名为list
。这可能会导致很多问题。
其次,您可以使用此代码获得所需的结果:
def return_desired_result_():
li=[1,2,3,4,5]
x=''
for i in range(len(li)) :
if i < len(li) -1 :
x += str(li[i]) + " + "
else :
x += str(li[i])
return x
如果您需要更多解释,只需发表评论,代码就是非常hacky和自我解释。