假设我有一个这样的文本文件,每个新的字母都从一个新行开始:
-.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/