split 创建一个列表。然后你 append 将该列表添加到另一个(空)列表。所以结果是你在一个列表中得到一个列表。如果您有更多行,您将获得更长的列表列表。以下是代码的快速细分:
def splitRoute():
route = []
您创建了一个空列表...
for line in open("route.txt","r").readlines():
line = line.replace("\r","")
line = line.replace("\n","")
对于每一行,将 \r 和 \n 字符替换为空字符串。请注意,您可以使用line.strip() ('apple\n\r'.strip() -> 'apple') 更轻松地完成此操作。此外,您应该将文件保存为文件名,以便稍后关闭它。最后,您无需在此处使用readlines —— 直接遍历文件即可。
line = string.split(line, '>')
现在您将line 引用的字符串拆分为一个列表,并将该列表分配给line。现在line 看起来像这样:['B', 'F']。
route.append(line)
return route
现在您已将line 附加到route,route 看起来像这样:[['B', 'F']]。
如果您的目标是创建单个列表,请使用 extend 而不是 append。
def splitRoute():
route = []
f = open('route.txt', 'r')
for line in f:
route.extend(line.strip().split('>'))
f.close()
return route
或者,使用with,并采用更易读的缩进级别:
def splitRoute():
route = []
with open('route.txt', 'r') as f:
for line in f:
route.extend(line.strip().split('>'))
return route
两行文件的输出 ('B>F\nF>X\n'):
>>> splitRoute()
['B', 'F', 'F', 'X']