我有两个列表-["l","h"]
,["a","b"]
,因此,我需要创建一个列表,例如:["la", "lb", "ha", "hb"]
-可以吗?
我尝试使用setproduct()
,flatten()
和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
,但尚未弄清楚如何从中获得["la", "lb", "ha", "hb"]
。任何人有帮助吗?
-S
答案 0 :(得分:1)
使用块列表,flattern,join和for循环,
> [for test in chunklist(flatten(setproduct(["l","h"], ["a","b"])), 2): join("", test)]
[
"la",
"lb",
"ha",
"hb",
]
答案 1 :(得分:0)
执行此操作的一种更简单的方法是两个嵌套的表达式:
在控制台中:
> flatten([for i in ["l","h"]: [for j in ["a","b"]: "${i}${j}"]])
[
"la",
"lb",
"ha",
"hb",
]
在HCL中:
output "flat" {
value = flatten([
for i in ["l","h"]: [
for j in ["a","b"]: "${i}${j}"
]])
}
输出:
Outputs:
flat = [
"la",
"lb",
"ha",
"hb",
]