ตัวอย่างเช่น
- set_fact:
l4: "{{ l4|d([]) + [item|combine({'gid': _gid|from_yaml})] }}"
วนซ้ำ: "{{ list1 }}"
วาร์:
_gid: |
{% ถ้า item.uid ในรายการ 2 %}
300
{% elif item.uid ในรายการ 3 %}
400
{% อื่น %}
{{ item.gid }}
{% เอนดิฟ %}
ให้
l4|to_yaml: |-
- {gid: 300, ชื่อ: test1, uid: 100}
- {gid: 300, ชื่อ: test2, uid: 101}
- {gid: 400, ชื่อ: test3, uid: 103}
- {gid: 250, ชื่อ: test4, uid: 104}
อัปเดต
ไม่จำเป็นต้องวนซ้ำรายการใน Ansible 2.12 และใหม่กว่า อัปเดตรายการในไพพ์แทน นิพจน์ด้านล่างให้ผลลัพธ์เดียวกัน
dict_default: "{{ list1|items2dict(key_name='uid', value_name='gid') }}"
dict_x: "{{ dict_default|
รวม (dict (list2 | ผลิตภัณฑ์ ([300]) + list3 | ผลิตภัณฑ์ ([400]))) }}"
gid_x: "{{ list1|map(attribute='uid')|map('extract', dict_x)|list }}"
gid_x_update: "{{ gid_x|map('community.general.dict_kv', 'gid')|list }}"
list4: "{{ list1|zip(gid_x_update)|แผนที่('รวม')|รายการ }}"
รายละเอียด
dict_default:
100:250
101:250
103:250
104:250
dict_x:
100:300
101:300
102:400
103:400
104:250
gid_x:
- 300
- 300
- 400
- 250
gid_x_update:
- รหัส: 300
- รหัส: 300
- รหัส: 400
- รหัส: 250