换句话说,有没有一种方法可以将元组的标识指定给某个函数,以便创建一组元组?
这有效:
locals {
tuples = [
{a=1, b=2},
{a=1, b=3},
{a=5, b=4},
]
a_map = {for t in tuples: t.a => t...}
distinct_tuples = [for k, v in a_map: v[0]]
}
开发@lucas Ross 答案:
您只需一行命令即可完成:
distinct_tuples = [for k, v in { for t in <your_tuples> : t.a => t... } : v[0]]
说明: 第一个循环将按具有相同“a”的每个元组分组到一个对象中。这是使用
...
完成的。你将拥有以下对象:
map = {
"1" = [
{
a = 1
b = 2
},
{
a = 1
b = 3
},
]
"5" = [
{
a = 5
b = 4
},
]
}
对于第二个循环,它将展平创建的地图并仅选择第一个值。然后你会得到以下对象:
[
{
a = 1
b = 2
},
{
a = 5
b = 4
},
]
参考资料: