将字符串转换为单词数组 - Python
Posted
技术标签:
【中文标题】将字符串转换为单词数组 - Python【英文标题】:Converting a string to array of words - Python 【发布时间】:2016-02-04 11:28:23 【问题描述】:我想在 Python 中创建一个函数,其中输入将是字符串并将其输入到要返回的数组中。
例如:
Input: "The dog is red"
Output: "The", "dog", "is", "red"
我相信算法应该可以工作,但没有返回任何内容。据我所知,if 语句没有检测到空格 (")。
代码如下:
string = input("Input here:")
def token(string):
start = 0
i = 0
token_list = []
for x in range(0, len(string)):
if " " == string[i:i+1]:
token_list = token_list + string[start:i+1]
print string[start:i+1]
start = i + 1
i += 1
return token_list
【问题讨论】:
【参考方案1】:您可以将函数修改为如下所示:
string = input("Input here:")
def token(string):
start, i = 0, 0
token_list = []
for x in range(0, len(string)):
if " " == string[i:i+1]:
token_list.append(string[start:i])
start = i + 1
i += 1
token_list.append(string[start:i])
return token_list
print token(string)
如果您不想包含尾随空格,则只需要追加直到 i
。第二个append
是必要的,因为您的条件是检查是否有空格来包含该单词,但最后一个单词不会有尾随空格,而是会有一个行尾字符或空字符。
【讨论】:
【参考方案2】:您可以简单地拆分字符串。
result=input.split(" ")
或
string = raw_input("Input here:")
def token(string):
start = 0
i = 0
token_list = []
for x in range(0, len(string)):
if " " == string[i:i+1][0]:
token_list.append(string[start:i+1])
#print string[start:i+1]
start = i + 1
i += 1
token_list.append(string[start:i+1])
return token_list
print token(string)
【讨论】:
我愿意,但任务要求我实现自己的标记器。 谢谢!只是想知道,为什么要包含第二个“token_list.append(string[start:i+1])”? @user287474 因为你需要在space
之后包含最后一个string
。你在空格之前包括string
。所以最后一个woule 被省略以上是关于将字符串转换为单词数组 - Python的主要内容,如果未能解决你的问题,请参考以下文章
如何使用PySpark将SparseVector中的前X个单词转换为字符串数组