没给出样例,问题描述也很含糊,目录树是按字符顺序还是路径关系排序、子目录是否以分隔符结尾、目录中只含有空目录是否也算作空目录…… 但还是试着写了写,不知道行不行: ```python from pathlib import Path from itertools import zip_longest # from pprint import pprint as pp
# paths = ? print('如果按路径关系排序') result = [ k for k, v in zip_longest(paths, paths[1:], fillvalue='') if is_dir(k) and not v.startswith(k) ] # pp(result)
print('如果无序') result = { k for k in paths if is_dir(k) } for v in paths: k = get_parent(v) result.discard(k) # pp(result) ``` (如果需要优化可以修改为迭代器,需要简化可以手动复制函数填充进表达式)
顺便因为缩进问题,修改一下无序部分的代码: ```python print('如果无序') result = { k for k in paths if is_dir(k) } temp = [ result.discard(get_parent(v)) for v in paths ] # pp(result) ``` 因为没法测试,所以不知道到底行不行得通。