假设我有一个这样的文本文件,每个新的字母都从一个新行开始:

-.H
-.e
-.l
-.l
-.o

我想写一个代码从每一个文本行中删除一些数据(在这个例子中,我想删除每个字母前面的“-.”),然后将结果连接起来形成:
Hello

对于这种问题,一般的解决方法是什么?我想可以通过以下方式解决:
f = open('hello.txt', 'r')
logs = f.readlines()
f.close()
loglist = list(map(str.strip, logs))
newlist = []

for i in range (len(loglist)):
    splitLetter = loglist[i].split('.')
    letter = splitLetter[-1]
    newlist.append(letter)
    word = ''.join(newlist)
    print word

但问题是,结果是一系列迭代:
H
He
Hel
Hell
Hello

我只需要最后的结果。我该怎么做?

最佳答案

当前代码的问题是每次迭代后都要打印。通过将print语句移到for循环之外,它将只打印最后一次迭代。

f = open('hello.txt', 'r')
logs = f.readlines()
f.close()
loglist = list(map(str.strip, logs))

word = ''.join(l.split('.')[-1] for l in loglist)
print word

为了确保这一点,我用一个包含以下文本的测试文件测试了它:
-.G
-.o
-.o
-.d
-.b
-.y
-.e

得到以下结果:
Goodbye

关于python - 将字符串追加到for循环中的列表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/44463403/

10-12 19:51