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