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']
那麼,還有什麼是你期待? – 2012-02-20 02:41:48