需要使用python删除列表中具有某些分隔字符的单词



需要从列表词中的每个单词中删除分隔字符(例如, . - * !空格(的单词。 将获得的结果再次存储在列表词中。

我似乎无法删除单词列表中的整个单词。有这样的事情吗?我尝试了下面的代码,但它不会删除带有上述字符的单词。另外,我可以需要使用列表理解和剥离功能吗?

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] 

相关内容

  • 没有找到相关文章

最新更新