将字符串转换为单词列表?

新手上路,请多包涵

我正在尝试使用 python 将字符串转换为单词列表。我想采取类似以下的内容:

 string = 'This is a string, with words!'

然后转换成这样的东西:

 list = ['This', 'is', 'a', 'string', 'with', 'words']

注意标点符号和空格的省略。最快的方法是什么?

原文由 rectangletangle 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 282
2 个回答

试试这个:

 import re

mystr = 'This is a string, with words!'
wordList = re.sub("[^\w]", " ",  mystr).split()

怎么运行的:

从文档:

 re.sub(pattern, repl, string, count=0, flags=0)

返回通过用替换 repl 替换 string 中最左边非重叠出现的 pattern 获得的字符串。如果未找到模式,则返回未更改的字符串。 repl 可以是字符串或函数。

所以在我们的例子中:

pattern 是任何非字母数字字符。

[\w] 表示任意字母数字字符,等于字符集 [a-zA-Z0-9_]

a 到 z、A 到 Z、0 到 9 和下划线。

所以我们匹配任何非字母数字字符并将其替换为空格。

然后我们 split() 它按空格拆分字符串并将其转换为列表

所以’你好世界’

变成“你好世界”

与 re.sub

然后 [‘你好’ , ‘世界’]

拆分后()

如果有任何疑问,请告诉我。

原文由 Bryan 发布,翻译遵循 CC BY-SA 3.0 许可协议

考虑到迟到的回复,我认为这是对于其他绊倒这篇文章的人来说最简单的方法:

 >>> string = 'This is a string, with words!'
>>> string.split()
['This', 'is', 'a', 'string,', 'with', 'words!']

原文由 gilgamar 发布,翻译遵循 CC BY-SA 3.0 许可协议

推荐问题