我在创建Mako模板时遇到问题,该模板将获取一个数字列表并输出它们的总和。示例:
list = [1, 2, 3, 4, 5]输出:
1 + 2 + 3 + 4 + 5我希望列表作为参数传递给模板。解决这个问题的方法是使用python ' + '.join(list)吗?我知道我们可以使用\来转义换行符,所以我可以在循环中这样做,但是需要特别注意最后一个+,它相当丑陋。
谢谢!
发布于 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)
发布于 2014-04-06 22:24:07
首先,请注意,您应该永远不要使用内置类型来命名您的变量()。我指的是您将您的列表([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代码相当繁琐,不言自明,如果你需要更多的解释,只需注释。
https://stackoverflow.com/questions/22893460
复制相似问题