我有一个像这样的单词列表
['Hey', 'yo', 'Hey?', 'Yeah.', 'john:']
我想删除, . " ' ? ! *
以及开头或结尾的所有其他内容
for element in array:
# perform
思考?
答案 0 :(得分:4)
取决于“其他一切”的含义。
[elt.strip(',."\'?!*:') for elt in array]
假设你有一个相当小的可移动令牌列表,非常容易并完成工作。
In [1]: ar = ['Hey', 'yo', 'Hey?', 'Yeah.', 'john:']
In [2]: [elt.strip(',."\'?!*:') for elt in ar]
Out[2]: ['Hey', 'yo', 'Hey', 'Yeah', 'john']
或者,按照建议:
import string
[elt.strip(string.punctuation) for elt in ar]
否则,如果你想删除所有其他不是字母数字的东西,你可以这样做:
import re
[re.sub(r'\W+', '', elt) for elt in array]
将删除所有非单词(准确地说,[A-Za-z0-9_]
)个字符。