Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将字符串转换为单词数组-Python_Python_Arrays_Character_Substring - Fatal编程技术网

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

将字符串转换为单词数组-Python,python,arrays,character,substring,Python,Arrays,Character,Substring,我想在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 = []

我想在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 

您可以简单地拆分字符串

result=input.split(" ")


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

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。

i会,但赋值是空的请我实现我自己的标记器。谢谢!只是想知道,为什么您要在
空格之后包含第二个“token_list.append(string[start:i+1])?@user287474,因为您需要在
空格之后包含最后一个
字符串
。在空格之前包含
字符串
。所以最后一个将被忽略
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)