我的代碼的目標是編寫一個函數並返回一個字符串列表,其中連續的字符串(水果名稱)對應於連續的#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明白了,謝謝! –