[英]Take every item in list that starts with x and put it in a new list - Rego
列表:= [“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)
一种方法是使用数组理解和内置startswith
的开头:
[ x | x := list[_]; startswith(x, "a")]
游乐场示例: https://play.openpolicyagent.org/p/8mQYYvUL2h
这本质上是说如果规则主体为真,则定义一个包含x
值的新数组。 理解的规则体依次迭代list
的所有索引以获取x
的值,并且当x
的值以"a"
开头时为真。
参考:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.