将字符串分成单个单词(Python)

时间:2016-09-29 16:02:18

标签: python string python-2.7

所以我在这里有这个代码:

#assign a string to variable
x = "example text"
#create set to store separated words
xset = []
#create base word
xword = ""
for letter in x:
    if letter == " ":
        #add word
        xset.append(xword)
        #add space
        xset.append(letter)
        #reset base word
    else:
        #add letter
        xword = xword + letter
        #back to line 9
#print set with separated words
print xset

非常自我解释,for函数查看x中的每个字母,如果它不是空格,则将其添加到xword(想象它就像xword = "examp" + "l"一样,会xword = "exampl")。如果是空格,则会为集合添加xword和空格,并重置xword

我的问题是"text"这个词没有被包含在最后一组中。当运行此代码并打印该集合时,它会给出:`['example','']

那么为什么"text"出现在集合中呢?

3 个答案:

答案 0 :(得分:1)

因为当您的代码到达x中的空格时,它会附加xword。但这只有在到达空间时才会发生。由于文字后没有空格,最终结果不会附加到xset此外,您没有重置xword

#assign a string to variable
x = "example text"
#create set to store separated words
xset = []
#create base word
xword = ""
for letter in x:
    if letter == " ":
        #add word
        xset.append(xword)
        #add space
        xset.append(letter)
        #reset base word
        xword = ""
    else:
        #add letter
        xword = xword + letter
        #back to line 9
#print set with separated words
xset.append(xword)
print xset

输出:

['example', ' ', 'text']

答案 1 :(得分:0)

在循环之后你需要再添加一个来添加最后一个单词

#assign a string to variable
x = "example text"
#create set to store separated words
xset = []
#create base word
xword = ""
for letter in x:
    if letter == " ":
        #add word
        xset.append(xword)
        #add space
        xset.append(letter)
        #reset base word
    else:
        #add letter
        xword = xword + letter
        #back to line 9
xset.append(xword)
#print set with separated words
print xset

答案 2 :(得分:0)

只需使用string.split()。此命令将返回字符串中的单词列表。以下是文档:https://docs.python.org/2/library/string.html

如果您的值是空格分隔的,请执行以下操作:

src/

如果您的分隔符与空格不同,您可以这样指定:

r.split()
Out[26]: ['some', 'text', 'here']