Skip to main content
 首页 » 编程设计

python之删除列表中不包含正则表达式字符串的所有项目

2025年05月04日19unruledboy

是否可以删除列表中不包含正则表达式字符串的所有项目?

我在想也许只返回一个正则表达式字符串,如果没有,则将列表项清空,然后再次遍历列表以删除所有空条目,但这似乎效率低下。

有什么想法吗?

例如,假设我有:

["cat", "dog", "monkey", "Fred", "sad"] 

我写了一个只选择悲伤的正则表达式。我希望(最好)删除所有其他内容。

请您参考如下方法:

最简单的方法是使用列表理解构造一个新列表:

regex = re.compile(...) 
new_list = [s for s in old_list if regex.match(s)] 

或者,使用 filter():

new_list = filter(regex.match, old_list)