我想知道是否有一种方法可以遍历值列表的字典。
我有一个变量,为:
dict_var: {"key1": [value1,value2,value3], "key2": [value4,value5,value6]}
我的任务看起来像这样:
- name: "Print key and value"
debug:
msg: "{{item.key}} and {{item.value}}"
with_dict: "{{ dict_var }}"
以上任务将输出打印为:
key1 and [value1,value2,value3]
key2 and [value4,value5,value6]
是否可以按照以下方式打印输出?
key1 and value1
key1 and value2
key1 and value3
key2 and value4
key2 and value5
key2 and value6
答案 0 :(得分:1)
我相信您要寻找的是product
(这只是itertools.product
的过滤器)
debug:
msg: '{{ item.0 }} and {{ item.1 }}'
loop: |
{% set r = [] %}
{% for k in dict_var %}
{% set x = [k] | product(dict_var[k]) | list %}
{% set _ = r.extend(x) %}
{% endfor %}
{{ r }}