如何根据包含部分值和通配符的其他列表过滤列表?以下示例是我到目前为止的例子:
l1 = ['test1', 'test2', 'test3', 'test4', 'test5']
l2 = set(['*t1*', '*t4*'])
filtered = [x for x in l1 if x not in l2]
print filtered
Run Code Online (Sandbox Code Playgroud)
此示例导致:
['test1', 'test2', 'test3', 'test4', 'test5']
Run Code Online (Sandbox Code Playgroud)
但是,我希望根据l2
以下内容限制结果:
['test2', 'test3', 'test5']
Run Code Online (Sandbox Code Playgroud)
Ash*_*ary 10
>>> from fnmatch import fnmatch
>>> l1 = ['test1', 'test2', 'test3', 'test4', 'test5']
>>> l2 = set(['*t1*', '*t4*'])
>>> [x for x in l1 if not any(fnmatch(x, p) for p in l2)]
['test2', 'test3', 'test5']
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1543 次 |
最近记录: |