我认为我想做的是一个相当常见的任务,但我在网上找不到任何参考资料。我有带标点符号的文本,我想要一个单词列表。
"Hey, you - what are you doing here!?"
应该是。['hey', 'you', 'what', 'are', 'you', 'doing', 'here']
但是 Python 的 str.split()
只能使用一个参数,所以在使用空格分割后会将标点符号与单词分开。有什么解决办法吗?
我最近需要这样做,但希望有一个函数与标准库的str.split
函数相匹配。当使用0或1个参数调用此函数时,该函数的行为与标准库相同。
def split_many(string, *separators):
if len(separators) == 0:
return string.split()
if len(separators) > 1:
table = {
ord(separator): ord(separator[0])
for separator in separators
}
string = string.translate(table)
return string.split(separators[0])
注意:此函数仅在您的分隔符由单个字符组成时才有用(正如我的用例一样)。
str.split()
方法也可以不传任何参数来使用。 - Ivan Vinogradov