从python中的一长串字符串中查找并删除一些子字符串

时间:2017-03-10 04:17:43

标签: python string substring

我需要读取字符串列表并删除一些特殊字符。我写的代码有效,但我正在寻找一种方法来有效地编写代码。因为,我需要为100万个长列表执行此过程(例如,每个列表有100000个单词)。

我写了一个例子来澄清我的问题。

input:
 str= ['short', 'club', 'edit', 'post\C2', 'le\C3', 'lundi', 'janvier', '2008'] 
 specialSubString=['\C2','\C3','\E2'] 

output:
 str= ['short', 'club', 'edit', 'post', 'le', 'lundi', 'janvier', '2008'] 

我的代码:

ml=len(str)
for w in range(0,ml):
   for i in range(0, len(specialSubString)):
       token=specialSubString[i]
       if token not in str[w]: 
          continue
       else:
          l= len(token)
          t= str[w]
          end= len(t)-l
          str[w]=t[:end]
          break

for w in str:
    print w

1 个答案:

答案 0 :(得分:2)

创建一个包含您要删除的所有特殊字符的字符串,并在右侧显示strip个字符串:

strings = ['short', 'club', 'edit', 'post\C2', 'le\C3', 'lundi', 'janvier', '2008']
special = ''.join(['\C2','\C3','\E2']) # see note

此时请注意\是一个特殊字符,您应该在使用它时将其转义,以避免歧义。您也可以简单地创建一个字符串文字,而不是使用str.join

special = '\\C2\\C3\\E2' # that's better

strings[:] = [item.rstrip(special) for item in strings]