【问题标题】:Converting a string to array of words - Python将字符串转换为单词数组 - 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 

【问题讨论】:

    标签: python arrays character substring


    【解决方案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 被省略
      猜你喜欢
      • 2013-11-27
      • 2016-05-22
      • 1970-01-01
      • 1970-01-01
      • 2020-04-02
      • 2021-02-11
      • 2020-11-21
      • 2019-05-19
      • 1970-01-01
      相关资源
      最近更新 更多