这是一个Python函数。它将转换为字符串中的单词列表。但我不理解算法代码的一部分:
for c in ch:
if c==" ":
lista.append(ct) # add to list of temporary string
ct="" # the ch temporary string reinicialization
我不明白,ct如何附加到列表中,因为ct =“”?如何获得价值?
感谢您的帮助!
这里是完整的功能代码:
def szoLista(ch):
"a ch karakterláncot átalakítja szavakból álló listává"
lista, ct=[],"" # ct átmeneti string
for c in ch:
if c==" ":
lista.append(ct) # a listához adjuk a ch átmenei stringet
ct="" # a ch átmeneti string reinicializálása
else:
ct=ct+c
if ct !="":
lista.append(ct) # az utolsó szó hozzáadása
return lista
答案 0 :(得分:3)
else:
ct=ct+c
这些是你忽略的线条。
如果找到空格,则ct
设置为空,但在将其添加到列表后。
如果当前字符不是空格,则将字符附加到ct
。
因此,当您遇到下一个空格时,您可以使用ct
中的最后一个单词并将其添加到列表中。
答案 1 :(得分:2)
ct不是空字符串 - ct等于word,因为你在else子句中有ct = ct + c。
但请注意,您可以轻松修改代码以使用str.split function:
text = 'word1 word2 word3'
text.split() # ['word1', 'word2', 'word3']
编辑:
或者取决于你真正需要的东西(下面的示例返回与你的函数相同的结果):
text = ' word1 word2 word3 '
text.rstrip(' ').split(' ') # ['', 'word1', '', 'word2', 'word3']
请注意,如果需要,您可以使用strip('')删除所有前导和尾随空格。
答案 2 :(得分:1)
def szoLista(ch):
lista, ct=[],"" # lista for storing the result, ct for current word
for c in ch: # read string char by char
if c==" ": # if current char is space
lista.append(ct) # append current word for to the resulting list
ct="" # clear current word (ready to constructing the next one)
else: # if current char is any other char
ct=ct+c # append it to current word
# we haven't appended the last recorded word, so let's do it (if it's not empty)
if ct !="":
lista.append(ct)
return lista