ansible.builtin.zip 过滤器 – 合并列表元素

注意

此过滤器插件是 ansible-core 的一部分,并包含在所有 Ansible 安装中。在大多数情况下,您可以使用简短的插件名称 zip。但是,我们建议您使用完全限定的集合名称 (FQCN) ansible.builtin.zip,以便轻松链接到插件文档并避免与其他可能具有相同过滤器插件名称的集合冲突。

概要

  • 并行迭代多个可迭代对象,生成包含每个对象中元素的元组。

输入

这描述了过滤器的输入,即 | ansible.builtin.zip 之前的值。

参数

注释

输入

list / elements=any / required

原始列表。

位置参数

这描述了过滤器的位置参数。 这些值是以下示例中的 positional1positional2 等:input | ansible.builtin.zip(positional1, positional2, ...)

参数

注释

_additional_lists

list / elements=any / required

其他列表。

关键字参数

这描述了过滤器的关键字参数。这些值是以下示例中的 key1=value1key2=value2 等:input | ansible.builtin.zip(key1=value1, key2=value2, ...)

参数

注释

strict

布尔值

如果 True,则在列表长度不匹配时返回错误;否则,最短列表确定输出。

选项

  • false ←(默认)

  • true

注意

注意

  • 当关键字和位置参数一起使用时,位置参数必须在关键字参数之前列出:input | ansible.builtin.zip(positional1, positional2, key1=value1, key2=value2)

  • 这主要是对 Python 的 zip 函数的传递。

示例

# two => [[1, "a"], [2, "b"], [3, "c"], [4, "d"], [5, "e"], [6, "f"]]
two: "{{ [1,2,3,4,5,6] | zip(['a','b','c','d','e','f']) }}"

# three => [ [ 1, "a", "d" ], [ 2, "b", "e" ], [ 3, "c", "f" ] ]
three: "{{ [1,2,3] | zip(['a','b','c'], ['d','e','f']) }}"

# shorter => [[1, "a"], [2, "b"], [3, "c"]]
shorter: "{{ [1,2,3] | zip(['a','b','c','d','e','f']) }}"

# compose dict from lists of keys and values
mydict: "{{ dict(keys_list | zip(values_list)) }}"

返回值

描述

返回值

list / elements=list

由与输入列表位置匹配的元素组成的列表的列表。

返回: 成功

提示

每个条目类型的配置条目都具有从低到高的优先级顺序。 例如,列表中较低的变量将覆盖较高的变量。