实现以下目标的更快方法是什么
# Expected Output for original_list
['Ju Moran', 'Luo Jiangning', 'Wang Zhongbo', 'Luo Haibo']
# Expected Output for rule_filter
['McGill University', 'Oba School', 'Test Case Filter']
import re
filter_words = [
'school',
'university',
'branch'
]
original_list = ['Ju Moran', 'Luo Jiangning', 'Wang Zhongbo',
'Luo Haibo', 'McGill University', 'Oba School', 'Test Case Filter']
rule_filter = [x for x in original_list if len(re.sub('\S+', '', x)) > 1]
[original_list.remove(i) for i in rule_filter]
以一种简单的方式,我试图删除具有多个空格且与myfilter_words
匹配的元素
Previous code already handle the space part.
可以使用for循环只读取原始列表一次,但需要另一个列表来存储结果,并在循环后将其重新分配回原始列表。另外,我认为
count(" ")
足够计算空间,不需要使用re。由于预期结果不区分大小写,因此使用lower()
列表理解版本将涉及两个for循环,但不需要额外的列表:
我想你需要这样的东西:
如果您想区分大小写并分隔确切的单词,可以删除.lower()
相关问题 更多 >
编程相关推荐