我有以下清单
x = ['Accara building model (ABM)','tri-com model (tcm)']
使用re,我可以忽略括号中的单词。就像下面一样
import re
x = ['Accara building model (ABM)','tri-com model (tcm)']
for i in x:
ko= list(re.sub("[\(\[].*?[\)\]]", "", i))
print (ko)
但我得到的输出格式如下
['A', 'c', 'c', 'a', 'r', 'a', ' ', 'b', 'u', 'i', 'l', 'd', 'i', 'n', 'g', ' ', 'm', 'o', 'd', 'e', 'l', ' ']
['t', 'r', 'i', '-', 'c', 'o', 'm', ' ', 'm', 'o', 'd', 'e', 'l', ' ']
理想情况下,我想要的是尽可能少的代码行。(我知道我的代码目前效率低下)
需要理想输出
['Accara building model', 'tri-com model']
你就快到了,试试这个:
输出:
output
列表如下当您使用
list(re.sub(...))
时,基本上是将输出字符串(替换后)转换为列表格式。你知道吗不应该使用
list()
,但应该在循环之前创建空列表,并将结果附加到此列表结果
你甚至可以使用列表理解
顺便说一句:我使用
strip()
删除结尾处的空格。但是可以用regex删除这个空格,regex以空格" [\(\[].*?[\)\]]"
开头。你知道吗编辑:正如Mark Meyer在comment中建议的那样,您还可以编译regex,这样就不必在每个循环中都编译它了。你知道吗
顺便说一句:如果您确定elments总是具有相同的结构,那么您可以不使用regex而使用
split(' (')
删除它相关问题 更多 >
编程相关推荐