繁体   English   中英

Python 列表理解逻辑错误

[英]Python list comprehension logic error

我正在尝试使用正则表达式和列表理解清除包含"msi"的字符串。 但是,当我打印列表时,包含"msi"的字符串仍在列表中。 错误究竟是什么? 这是我的代码:

spam_list = [l for l in spam_list if not re.match("msi", l)]

re.match()从字符串的开头匹配。 使用re.search() ,甚至更好, in .

L = [l for l in L if "msi" not in l]

由于您显然是在查看文件名列表,因此您也可以使用 endwith:

list = [l for l in list if l.endswith('.msi')]

这是按文件扩展名过滤列表的一种方法

import os
extensions = set(['.msi', '.jpg', '.exe'])
L = [l for l in L if os.path.splitext(l)[1] not in extensions]

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM