需要从列表词中的每个单词中删除分隔字符(例如, . - * !
和空格(的单词。 将获得的结果再次存储在列表词中。
我似乎无法删除单词列表中的整个单词。有这样的事情吗?我尝试了下面的代码,但它不会删除带有上述字符的单词。另外,我可以需要使用列表理解和剥离功能吗?
words=([s.strip(",.-*! ") for s in (Convert(setofStrings))])
print(words)
strip()
只会从字符串的开头或结尾删除这些字符。您需要使用translate()
或更复杂的基于正则表达式的替换re.sub()
。
使用deletechars
参数的translate()
示例:
words = ['-foo.,', '!b*a-!r', 'ba*!,-z']
words = [s.translate(None, '-.!*,') for s in words]
和re.sub()
的例子:
import re
words = ['-foo.,', '!b*a-!r', 'ba*!,-z']
words = [re.sub(r'[-.!*,]', '', s) for s in words]
输出:
['foo', 'bar', 'baz']
试试这个:
b = ["aa-2", "bb-2"]
words = [x.split("-") for x in b]
输出:
[['aa', '2'], ['bb', '2']]
也就是说,如果您想拆分单词,如果您只想删除可以使用的字符.replace()
正如建议的那样,如果您的目标是从字符串列表中删除字符,您可以将re.sub
与列表理解结合使用。
import re
list_of_words = ['test.','cool!','wow ','y*,!']
result = [re.sub('[,.-*! ]', '', word) for word in list_of_words]