我需要检查文件名列表是否可以被复制,并将其与fobidden子字符串列表进行比较。你知道吗
以下是我所拥有的:
exclude = ['ex','xe']
files = ['include', 'exclude']
这就是我所期望的:
['include']
我已经用列表理解了,比如:
[a[0] for a in [(f, any([e in f for e in exclude])) for f in files] if not a[1]]
在这里,我创建一个元组(f, any([e in f for e in exclude]))
,检查文件名与排除子字符串是否有对应关系。
我对文件列表for f in files
中的每个文件都这样做,并且只包括排除子字符串if not a[1]
中不存在的文件。你知道吗
有更好的方法吗?一个更像Python的? 因为我在文件列表中循环了两次,我猜有一种方法可以一次性完成!你知道吗
谢谢你!你知道吗
我不太明白你的逻辑。看起来您正在用布尔值构建元组,然后过滤出
False
值。你知道吗在我看来,这也很有效,而且更简单:
它循环遍历
files
,并检查每个文件中是否不包含exclude
成员。你知道吗请注意,您不必在
any
中构建实际的列表。省略方括号,让any
执行一个延迟计算,它更快。你知道吗这只会在文件列表中循环一次:
对于文件列表中的每个项,它都会在排除列表中循环一次,因此如果排除列表很长,性能可能会受到影响。你知道吗
相关问题 更多 >
编程相关推荐