List Terraform-如何连接嵌套列表的元素?
我有两个列表-List Terraform-如何连接嵌套列表的元素?,list,terraform,List,Terraform,我有两个列表-[“l”,“h”],[“a”,“b”],我需要从中创建一个类似的列表:[“la”,“lb”,“ha”,“hb”]-可能吗 我试过使用setproduct()、flatte()和join()但是我能得到的最接近的结果如下: > setproduct(["l","h"], ["a","b"]) [ [ "l", "a", ], [ "l", "b", ], [ "h", "a", ], [ "h"
[“l”,“h”]
,[“a”,“b”]
,我需要从中创建一个类似的列表:[“la”,“lb”,“ha”,“hb”]
-可能吗
我试过使用setproduct()
、flatte()
和join()
但是我能得到的最接近的结果如下:
> setproduct(["l","h"], ["a","b"])
[
[
"l",
"a",
],
[
"l",
"b",
],
[
"h",
"a",
],
[
"h",
"b",
],
]
#
> flatten(setproduct(["l","h"], ["a","b"]))
[
"l",
"a",
"l",
"b",
"h",
"a",
"h",
"b",
]
我还可以加入单个元素:
> join("",setproduct(["l","h"], ["a","b"])[1])
lb
但是还没有弄清楚如何从中解脱出来。有人帮忙吗
-使用chunklist、flattern、join和for循环
> [for test in chunklist(flatten(setproduct(["l","h"], ["a","b"])), 2): join("", test)]
[
"la",
"lb",
"ha",
"hb",
]
一种更简单的方法是使用两个嵌套的for表达式: 在控制台中:
>展平([对于[“l”,“h”]中的i:[对于[“a”,“b”]中的j:“${i}${j}]”)
[
“洛杉矶”,
“磅”,
“哈”,
“hb”,
]
在盐酸中:
输出“平坦”{
值=展平([
对于[“l”,“h”]中的i:[
对于[“a”,“b”]中的j:“${i}${j}”
]])
}
产出:
输出:
平面=[
“洛杉矶”,
“磅”,
“哈”,
“hb”,
]
什么版本的Terraform?Terraform v0.12.2+provider.aws v2.16.0
谢谢@RyanKim!我根本不知道terraform中的for循环。在这种情况下,只需使用:[对于setproduct中的测试([“l”、“h”],[“a”、“b”]):join(“,test)]
,而无需使用chunklist()和flatte()很好!for循环是在terraform 0.12.x中引入的,我仍然使用v0.11.14。所以我不擅长0.12语法。