Mako模板总和

时间:2014-04-06 11:34:21

标签: python mako

我在创建Mako模板时遇到问题,该模板会获取一个数字列表并输出它们的总和。例如:

list = [1, 2, 3, 4, 5]

输出:

1 + 2 + 3 + 4 + 5

我希望列表作为参数传递给模板。 是使用python ' + '.join(list)解决这个问题的方法吗? 我知道我们可以使用\来逃避新的行字符,所以我可以在循环中完成它,但是需要特别注意最后的+,这非常难看。 / p>

谢谢!

2 个答案:

答案 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和自我解释。