如何过滤两个列表并创建一个新列表

安东尼

如果我有两个如下所示的字符串列表,并且想基于startsWith逻辑创建一个新的字符串列表,该怎么办?

pathList = ["/etc/passwd/something.txt",
            "/etc/fonts/fonts.conf" 
            "/var/www/foo.bar", 
            "/some/foo/path/one.txt"]
notAllowedPathList = ["/etc/fonts",  
                      "/var", 
                      "/path"]

newList = ["/etc/passwd/something.txt", "/some/foo/path/one.txt"]

newList通过查看中的每个元素中的pathList startsWith每个元素来创建newList

所以,从以上pathList/etc/fonts/fonts.conf并且/var/www/foo.bar被删除,因为它们startWith/etc/fonts/var分别。

我在下面提出了建议,但我相信这样做会有更时髦的方法:

    def newList = []
    pathList.each {String fileName ->
        notAllowedPathList.find { String notAllowed ->
            if (fileName.startsWith(notAllowed)) {
                return true
            }
            else {
                newList << fileName
            }
        }
    }
多纳尔
def pathList = [
    "/etc/passwd/something.txt",
    "/etc/fonts/fonts.conf", 
    "/var/www/foo.bar", 
    "/some/foo/path/one.txt"
]

def notAllowedPathList = ["/etc/fonts", "/var", "/path"]

def newList = pathList.findAll { String fileName ->
    !notAllowedPathList.any { 
        fileName.startsWith(it)
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

从两个列表创建一个元组列表

从现有列表中创建一个新列表;根据对新列表的操作更改两个列表

比较两个列表中的元素并在Dart中创建一个新列表

Python:获取两个列表并通过合并它们来创建一个新列表

Elixir 如何一次迭代两个列表以生成一个新列表?

如何连接两个列表元素 - 明智并制作一个新列表?

如何从两个列表创建元组,以便一个列表元素重复

从一个随机创建两个列表

我如何遍历两个不同的列表并创建一个新列表,该列表将列表作为元素,哪些元素包含两个列表中的内容

如何从Prolog中的现有列表中创建一个新的过滤列表?

Python:比较两个成对的列表,并根据成员资格和值创建一个新列表

Python - 在有序列表中的两个元素之间创建一个新的子列表

给定一个列表,我如何构造一个新列表,以使新列表的每个元素都是旧列表中每两个数字的和?

如何从两个列表创建一个PySpark数据框?

如何解析列表中的两个元素以创建一个新元素

从两个字典创建一个新列表(不区分大小写)

用两个字典创建一个新列表

根据索引从两个列表中创建一个列表列表

通过在列表推导中组合两个列表来创建一个列表

从两个数据框创建一个列表

用一行代码从两个单独的列表生成一个新列表

根据另一个列表中的值从两个列表创建一个列表

如何将两个列表中的每个元素连接到一个新列表?

c# - 如何将两个不同的表列表放入一个新列表中

将两个data.frames列表绑定到一个新列表

比较两个地图列表并返回一个新的转换列表(Elixir)

如何比较部分匹配的列表并从两个列表创建新列表

来自一个列表的两个组合列表

从一个列表创建两个随机列表