如何结合两个列表?

我有一个使用with_subelements的任务,但是对于大列表来说,速度太慢了(特别是大多数元素都有重复,而且我不需要为它们多次运行)。

所以我正在寻找一种方法来优化它。 我希望从列表中获得所有独特的元素 – 例如下面的示例中的settings

库存:

 my_list: - { name: foo, settings: ['x', 'y', 'z'] } - { name: bar, settings: ['x', 'y', 'q', 'w'] } 

任务:

 - name: get all settings set_fact: all_settings="{{ my_list|map(attribute='settings')|list }}" - name: show results debug: var=all_settings 

结果:

 "var": { "all_settings": [ [ "x", "y", "z" ], [ "x", "y", "q" "w" ] ] } 

我坚持在这一点上。 我怎样才能将这些列表结合在一起?

我正在寻找一种方法来获得['x', 'y', 'z', 'q', 'w']

你需要使用union

closures我的头顶上:

 all_settings="{{ foo|map(attribute='settings')|union(bar|map(attribute='settings')) }}"