将字符串转换为单词数组 - Python

Converting a string to array of words - Python

我想在 Python 中创建一个函数,其中输入将是字符串并将其输入到要返回的数组中。

例如:

Input: "The dog is red"  
Output: "The", "dog", "is", "red"

我相信该算法应该有效,但没有返回任何内容。据我所知,if 语句未检测到 space (")。

代码如下:

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 

您可以简单地拆分字符串。

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)

您可以将函数修改为如下所示:

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)

如果您不想包含结尾的 space,则只需追加到 i。第二个 append 是必需的,因为您的条件是检查 space 以包含该词,但最后一个词不会有尾随 space,而是有一个行尾字符或空值。