gpt4 book ai didi

list - 是否有在ansible中总结列表内容的快捷方式?

转载 作者:行者123 更新时间:2023-12-04 08:41:23 27 4
gpt4 key购买 nike

我有一个 list sList作为:

sList = ['12','8','10']
我需要 sList 的所有元素的总和.
我遇到了 sum() jinja2 中的函数,但它需要属性等,并且不确定如何与 list 一起使用它.
我试过:
- set_fact:
sList:
- '12'
- '8'
- '10'

- set_fact:
sumList: "{{ sum(sList) }}"

- debug: var=sumList
预期结果:sumList = 30,但出现以下错误:
"msg": "The task includes an option with an undefined variable. The error was: 'sum' is undefined 
请帮忙。
谢谢

最佳答案

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

    - set_fact:
sList: ['12', '8', '10']
- set_fact:
sumList: "{{ sList|sum }}"

fatal: [localhost]: FAILED! =>msg: 'Unexpected templating type error occurred on ({{ sList|sum }}): unsupported operand type(s) for +: ''int'' and ''AnsibleUnicode'''


要解决此问题,请使用数字列表。例如
    - set_fact:
sList: [12, 8, 10]
- set_fact:
sumList: "{{ sList|sum }}"
- debug:
var: sumList

  sumList: '30'
下一个选项是将列表的项目转换为数字。 map 要么 intfloat功能。例如
    - set_fact:
sList: ['12', '8', '10']

- set_fact:
sumList: "{{ sList|map('int')|sum }}"
- debug:
var: sumList

- set_fact:
sumList: "{{ sList|map('float')|sum }}"
- debug:
var: sumList

  sumList: '30'

sumList: '30.0'

关于list - 是否有在ansible中总结列表内容的快捷方式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64550196/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com