所以我有这样的代码在这里:分离字符串为单个单词(Python)的
#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
所以非常自我解释,对于该函数查找在x
每个字母,如果它不是一个空间它将其添加到xword
(想象它像xword = "examp" + "l"
,这将使xword = "exampl"
)。如果它是一个空格,它将xword
和一个空格添加到该集合,并重置xword
。
我的问题是,"text"
这个词没有被包含在最终的集合中。当这个代码运行,并且该集合被打印时,它给出这个:[['example','']
那么为什么"text"
不出现在集合中呢?
在你循环中,只有当你点击一个空格时才会添加一个单词。在最后一个单词之后没有空格,所以最后一个单词不会被添加。尝试在循环结束后向列表中添加'xword'(它是一个列表,而不是一个集合)。 – khelwood
我想你是在做这个课程的一部分。在这种情况下,这是有道理的。否则:'xset = x.split()' – zvone
'x.split()'是好的,但是如果你想保留列表中的空间,请执行: 're.split(“()”,x)' – dpjanes