Python列表理解逻辑错误
我正在尝试使用正则表达式和列表理解来清除包含 "msi"
的字符串。但是,当我打印列表时,包含 "msi"
的字符串仍然在列表中。错误到底是什么?这是我的代码:
spam_list = [l for l in spam_list if not re.match("msi", l)]
I'm trying to weed out strings that contains "msi"
using regular expressions and a list comprehension. However, when I print the list, strings that contain "msi"
are still in the list. What exactly would the error be? This is my code:
spam_list = [l for l in spam_list if not re.match("msi", l)]
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
re.match()
从字符串的开头匹配。使用re.search()
,或者更好的是in
。re.match()
matches from the beginning of the string. Usere.search()
, or even better,in
.由于您显然正在查看文件名列表,因此您还可以使用endswith:
Since you're apparently looking through a list of filenames, you could also use endswith:
这是按文件扩展名过滤列表的一种方法
Here is one way to filter a list by the file extension