我有以下形式的键 - 值对关联:
- mykey1:
myvalues1: ['a', 'b', 'c']
- mykey2:
myvalues2: ['d', 'e']
- mykey3:
myvalues3: ['f']
我知道使用with_dict
构造我可以遍历键和值(列表)。
我的问题是我如何能够循环遍历列表的(值)元素?
我希望能够实现的输出是:
a', 'b', 'c', 'd', 'e', 'f'
问题是我需要维持上述关联。 有没有办法避免重复列表声明?
答案 0 :(得分:1)
我不太确定动态按键是否可行。但假设以下vars文件没有1,2和3:
rootitem:
- mykey:
myvalues: ['a', 'b', 'c']
- mykey:
myvalues: ['d', 'e']
- mykey:
myvalues: ['f']
可以使用" with_subelements"使用以下示例:
- name: iterate over list
debug:
msg: "the current item is{{ item.0 }} and all subitems are {{ item.1 }}"
with_subelements:
- "{{ rootitem }}"
- mykey.myvalues
这导致6次迭代,每次#34; a,b,c,d,e,f"。
答案 1 :(得分:0)
这是我提出的构造:
String type
当有人想要将值迭代为单个值
时associations:
- { key: mykey1, myvalues: ['a', 'b', 'c', ] }
- { key: mykey2, myvalues: ['d', 'e'] }
- { key: mykey3, myvalues: ['f'] }
当有人想要将值作为列表
进行迭代时- name: List single items
debug:
msg: "{{ item.1 }}"
with_subelements:
- associations
- myvalues