我的代码的目标是编写一个函数并返回一个字符串列表,其中连续的字符串(水果名称)对应于连续的#No.1...#No.5
。水果的全名分成多行,我想在列表中显示果实名称作为一个没有空格的单个字符串。 我希望我的代码返回:Python:如何避免在for循环中追加空字符串?
['Pear', 'Apple', 'Cherry', 'Banana', 'Peach']
但我得到:
['', 'Pear', 'Apple', 'Cherry', 'Banana', 'Peach']
这些都是我的文件fruit.txt
的内容:
#NO.1
P
ear
#NO.2
A
pp
l
e
#NO.3
Cherry
#NO.4
Banan
a
#NO.5
Pea
c
h
这是我的代码:
def read(filename):
myfile = open('fruit', 'r')
seq = ''
list1 = []
for line in myfile:
if line[0] != '#':
seq +=line.rstrip('\n')
else:
list1.append(seq)
seq = ''
list1.append(seq)
return list1
如何避免追加一个不是我想要的空字符串?我想我只需要调整某一行代码的位置,任何建议表示赞赏。
请注意,如果重复调用,您的函数将导致内存泄漏。如果不确定随后关闭文件,则永远不要打开文件。 最简单的方法是使用'with'构造。 如需进一步阅读,请参阅此链接:http://effbot.org/zone/python-with-statement.htm – sobek
@sobek明白了,谢谢! –