populating dictionary from lookup

Hello
As a part of another project, I have written a playbook:

Create it in Jinja. For example,

    soarecords: |
      {% for zone in zones %}
      {{ zone }}:
      {% for field in lookup('dig', zone, 'qtype=SOA')|split %}
        {{ soafields[loop.index0] }}: {{ field }}
      {% endfor %}
      {% endfor %}
    soarecords_dict: "{{ soarecords|from_yaml }}"

The next option is putting the iteration into one task. For example,

    - set_fact:
        soarecords_dict: "{{ soarecords_dict|d({})|
                             combine({item: _dict}) }}"
      loop: "{{ zones }}"
      vars:
        _dict: "{{ dict(soafields|
                   zip(lookup('dig', item, 'qtype=SOA')|split)) }}"

Thank you, Vladimir. I’ve completely forgotten that ansible allows vars to be defined for a single task.