Python';terraform中的s-zip类函数
我有3个列表。有没有办法在terraform中逐个添加每个列表中的元素。像下面这样Python';terraform中的s-zip类函数,terraform,Terraform,我有3个列表。有没有办法在terraform中逐个添加每个列表中的元素。像下面这样 for a, b, c in UNKNOWN_FUNC([1, 2, 3], [4, 5, 6], [7, 8, 9]): ... ... 输出应该是这样的 [1, 4, 7] [2, 5, 8] [3, 6, 9] 注意:我尝试了zipmap,但它不起作用 注2:列表的长度始终相同您可以为此构建一个帮助列表,然后对其进行迭代。例如: variable "l1" { defau
for a, b, c in UNKNOWN_FUNC([1, 2, 3], [4, 5, 6], [7, 8, 9]):
...
...
输出应该是这样的
[1, 4, 7]
[2, 5, 8]
[3, 6, 9]
注意:我尝试了zipmap
,但它不起作用
注2:列表的长度始终相同您可以为此构建一个帮助列表,然后对其进行迭代。例如:
variable "l1" {
default = [1, 2, 3]
}
variable "l2" {
default = [4, 5, 6]
}
variable "l3" {
default = [7, 8, 9]
}
locals {
new_list = [ for idx in range(0, 3):
[ var.l1[idx], var.l2[idx], var.l3[idx] ]
]
}
并在中为每个
使用它:
resource "ddd" "ddd"{
for_each = {for idx, val in local.new_list: idx => val}
some_attribute1 = each.value[0]
some_attribute2 = each.value[1]
some_attribute3 = each.value[2]
您可以为此构建一个帮助列表,然后对其进行迭代。例如:
variable "l1" {
default = [1, 2, 3]
}
variable "l2" {
default = [4, 5, 6]
}
variable "l3" {
default = [7, 8, 9]
}
locals {
new_list = [ for idx in range(0, 3):
[ var.l1[idx], var.l2[idx], var.l3[idx] ]
]
}
并在中为每个
使用它:
resource "ddd" "ddd"{
for_each = {for idx, val in local.new_list: idx => val}
some_attribute1 = each.value[0]
some_attribute2 = each.value[1]
some_attribute3 = each.value[2]
我不能完全确定我理解您的目标是什么,但它似乎涉及到重新组织元素以按其索引对它们进行分组 假设所有列表的长度总是相同的,那么可以使用a来实现,这与Python中的列表或映射理解相当
locals {
lists = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
pivot = [
for i, v in local.lists[0] : [
local.lists[0][i],
local.lists[1][i],
local.lists[2][i],
]
]
}
这将使用第一个列表的长度作为所有列表长度的代理,因此如果不是所有列表都具有相同的长度,则此操作将失败。我不完全确定我是否理解您的目标,但它似乎涉及到重新组织元素以按其索引对其进行分组 假设所有列表的长度总是相同的,那么可以使用a来实现,这与Python中的列表或映射理解相当
locals {
lists = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9],
]
pivot = [
for i, v in local.lists[0] : [
local.lists[0][i],
local.lists[1][i],
local.lists[2][i],
]
]
}
这将使用第一个列表的长度作为所有列表长度的代理,因此如果不是所有列表都具有相同的长度,这将失败