List 在ansible中是否有一个快捷方式来汇总列表的内容?

List 在ansible中是否有一个快捷方式来汇总列表的内容?,list,ansible,sum,jinja2,List,Ansible,Sum,Jinja2,我有一个列表sList如下: sList = ['12','8','10'] 我需要sList的所有元素的总和 我在jinja2中遇到了sum()函数,但它需要属性等,不知道如何将其与列表一起使用 我试过: 预期结果:sumList=30,但出现以下错误: "msg": "The task includes an option with an undefined variable. The error was: 'sum' is undefined 请帮忙 谢

我有一个列表
sList
如下:

sList = ['12','8','10']
我需要
sList
的所有元素的总和
我在jinja2中遇到了
sum()
函数,但它需要属性等,不知道如何将其与
列表一起使用
我试过:

预期结果:sumList=30,但出现以下错误:

"msg": "The task includes an option with an undefined variable. The error was: 'sum' is undefined 
请帮忙

谢谢,过滤器“返回一系列数字的总和”。变量sList是字符串列表。下面的任务将失败

-设置事实:
列表:['12','8','10']
-设定事实:
sumList:“{sList|sum}”
致命:[localhost]:失败!=> msg:({sList | sum}})上发生意外的模板类型错误:+:“int”和“AnsibleUnicode”的操作数类型不受支持

要解决此问题,请使用数字列表。比如说

-设置事实:
sList:[12,8,10]
-设定事实:
sumList:“{sList|sum}”
-调试:
变量:sumList
给予

sumList:'30'
下一个选项是将列表中的项目转换为数字。映射或函数。比如说

-设置事实:
列表:['12','8','10']
-设定事实:
sumList:{{sList | map('int')| sum}
-调试:
变量:sumList
-设定事实:
sumList:{{sList | map('float')| sum}
-调试:
变量:sumList
给予

sumList:'30'
sumList:'30.0'

太棒了!在我的例子中,这个列表包含字符串,所以使用了map和int,它就像一个符咒!!。我尝试了jinja方法,但仍然遇到了
范围界定问题。谢谢你,博卡!
"msg": "The task includes an option with an undefined variable. The error was: 'sum' is undefined