繁体   English   中英

将列表中以 x 开头的每个项目放入一个新列表中 - Rego

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM