首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Mako模板和

Mako模板和
EN

Stack Overflow用户
提问于 2014-04-06 19:34:21
回答 2查看 261关注 0票数 1

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

代码语言:javascript
复制
list = [1, 2, 3, 4, 5]

输出:

代码语言:javascript
复制
1 + 2 + 3 + 4 + 5

我希望列表作为参数传递给模板。解决这个问题的方法是使用python ' + '.join(list)吗?我知道我们可以使用\来转义换行符,所以我可以在循环中这样做,但是需要特别注意最后一个+,它相当丑陋。

谢谢!

EN

回答 2

Stack Overflow用户

发布于 2014-04-06 20:51:39

内置函数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)

票数 0
EN

Stack Overflow用户

发布于 2014-04-06 22:24:07

首先,请注意,您应该永远不要使用内置类型来命名您的变量()。我指的是您将您的列表([1,2,3,4,5])命名为list。这会导致很多问题。

其次,你可以使用下面的代码来获得你想要的结果:

代码语言:javascript
复制
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

代码相当繁琐,不言自明,如果你需要更多的解释,只需注释。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22893460

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档