1

列表:= [“a:aqsdf”、“a:asdf”、“b:gfs”、“b:sdf”、“a:adfd”、“b:asdfd”]

我希望新列表仅包含以 'a' 开头的项目:["a:aqsdf", "a:asdf", "a:adfd"]

我尝试过使用套装但没有成功。这在 python 中将是一件轻而易举的事,但我似乎无法理解 rego。我可以把它变成一个集合,但不知道如何挤进 if 语句(startswith(list[_], "a") == true)

4

1 回答 1

2

一种方法是使用数组理解和startswith内置函数:

[ x | x := list[_]; startswith(x, "a")]

游乐场示例:https ://play.openpolicyagent.org/p/8mQYYvUL2h

这实质上是在定义一个新数组,其中包含x规则主体是否为真的值。推导式的规则体依次迭代 的list值的所有x指标,并且当 的值以x开头时为真"a"

参考:

于 2020-08-07T19:17:43.550 回答