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

时间:2015-11-04 04:46:59

标签: python arrays character substring

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

例如:

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 

2 个答案:

答案 0 :(得分: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)

答案 1 :(得分:0)

您可以将功能修改为如下所示:

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是必要的,因为你的条件是检查一个空格来包含单词,但是最后一个单词不会有尾随空格,而是会有一个行尾字符或null。