我如何分割一个句子并将每个单词存储在一个列表中?例如,给定一个像“these are words”这样的字符串,我如何得到一个像["these", "are", "words"]这样的列表?
若要拆分其他分隔符,请参见在python中使用分隔符拆分字符串。
若要拆分为单个字符,请参见如何将字符串拆分为字符列表?。
我如何分割一个句子并将每个单词存储在一个列表中?例如,给定一个像“these are words”这样的字符串,我如何得到一个像["these", "are", "words"]这样的列表?
若要拆分其他分隔符,请参见在python中使用分隔符拆分字符串。
若要拆分为单个字符,请参见如何将字符串拆分为字符列表?。
当前回答
如果你想要一个列表中一个单词/句子的所有字符,可以这样做:
print(list("word"))
# ['w', 'o', 'r', 'd']
print(list("some sentence"))
# ['s', 'o', 'm', 'e', ' ', 's', 'e', 'n', 't', 'e', 'n', 'c', 'e']
其他回答
在任意连续运行的空格上拆分字符串文本:
words = text.split()
使用自定义分隔符(如",")分隔字符串文本:
words = text.split(",")
words变量将是一个列表,并包含分隔符上分割的文本中的单词。
给定一个字符串句子,它将每个单词存储在一个名为words的列表中:
words = sentence.split()
如果你想要一个列表中一个单词/句子的所有字符,可以这样做:
print(list("word"))
# ['w', 'o', 'r', 'd']
print(list("some sentence"))
# ['s', 'o', 'm', 'e', ' ', 's', 'e', 'n', 't', 'e', 'n', 'c', 'e']
根据你对句子列表的计划,你可能想看看自然语言工具包。它主要处理文本处理和计算。你也可以用它来解决你的问题:
import nltk
words = nltk.word_tokenize(raw_sentence)
这样做还有分隔标点符号的额外好处。
例子:
>>> import nltk
>>> s = "The fox's foot grazed the sleeping dog, waking it."
>>> words = nltk.word_tokenize(s)
>>> words
['The', 'fox', "'s", 'foot', 'grazed', 'the', 'sleeping', 'dog', ',',
'waking', 'it', '.']
这样你就可以过滤掉你不想要的标点符号,只使用单词。
请注意,如果您不打算对句子进行任何复杂的操作,使用string.split()的其他解决方案会更好。
(编辑)
使用str.split ():
返回字符串中的单词列表,使用sep作为分隔符 ... 如果sep未指定或为None,则应用不同的分割算法:连续空格的运行被视为单个分隔符,如果字符串前导或尾部有空格,则结果将在开头或结尾不包含空字符串。
>>> line = "a sentence with a few words"
>>> line.split()
['a', 'sentence', 'with', 'a', 'few', 'words']