You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy列表交集求解:目录列表与带路径文件名列表匹配

找出目录列表与文件路径列表的交集

我有一个目录列表:

[dir1,dir2/dir3,dir4,dir7]

还有一个带完整路径的文件名列表:

[dir1/file1.txt,dir8/file2.ext,dir4/dir5/dir6/file4.ext, dir2/dir3/file4.ext]

需要找出第一个列表中,是第二个列表里某个文件的上级目录的项,预期结果:

[dir1,dir4,dir2/dir3]

实现思路

遍历目录列表中的每一项,通过在目录后添加斜杠构造匹配前缀(避免部分字符串匹配的误判,比如防止"dir"误匹配"dir1"),检查是否存在文件列表中的某个文件路径以此前缀开头,符合条件的目录即为交集项。

Python 代码示例

# 输入列表
dir_list = ["dir1", "dir2/dir3", "dir4", "dir7"]
file_list = ["dir1/file1.txt", "dir8/file2.ext", "dir4/dir5/dir6/file4.ext", "dir2/dir3/file4.ext"]

# 筛选符合条件的目录
intersection = []
for directory in dir_list:
    match_prefix = f"{directory}/"
    # 检查是否有文件以该目录为前缀
    for file_path in file_list:
        if file_path.startswith(match_prefix):
            intersection.append(directory)
            break

print(intersection)
# 输出结果: ['dir1', 'dir2/dir3', 'dir4']

内容的提问来源于stack exchange,提问作者rismoney

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.16 14:15:30