2016-12-03 134 views
0

我正在Python中創建一個迷宮遍歷器。最初,我將迷宮txt文件作爲列表讀取,但我無法逐行打印迷宮。我們給出行數和列數,入口的行和列以及出口的行和列。在Python中讀迷宮文件並逐行打印迷宮行

什麼我的輸出繼電器是:

[['5', ' ', '5', ' ', '4', ' ', '1', ' ', '0', ' ', '1'], ['#', ' ', '#', '#', '#'], ['#', ' ', '#', ' ', '#'], ['#', ' ', '#', ' ', '#'], ['#', ' ', ' ', ' ', '#'], ['#', ' ', '#', '#', '#']] 

我所期待的:

5 5 4 1 0 1 
    # ### 
    # # # 
    # # # 
    # # 
    # ### 

我的測試代碼打印出來的迷宮:

#read MAZE and print 

    def readMaze(maze, filename): 
     mazeFile = open(filename, "r") 
     columns = mazeFile.readlines() 
     for column in columns: 
      column = column.strip() 
      row = [i for i in column] 
      maze.append(row) 

    maze =[] 
    readMaze(maze, "maze01.txt") 

    print maze 
+0

你嵌套列表。您需要使用'for'循環,就像您在'readMaze'函數中遍歷頂層列表和每個元素(這是一個字符列表)一樣,使用[join](https:// docs.python.org/2/library/stdtypes.html#str.join)將字符連接成一個字符串,打印出來,然後移動到下一行。 – skrrgwasme

+0

好的,謝謝,我會編輯它,並讓你知道,如果我再次遇到問題。 – vibeon7

回答

0

如果您maze清單是這樣的:

maze = [['5', ' ', '5', ' ', '4', ' ', '1', ' ', '0', ' ', '1'], ['#', ' ', '#', '#', '#'], ['#', ' ', '#', ' ', '#'], ['#', ' ', '#', ' ', '#'], ['#', ' ', ' ', ' ', '#'], ['#', ' ', '#', '#', '#']] 

你可以打印出來,並有使用joinfor loop像這樣的例子您所需的打印輸出:

for i in maze: 
    print("".join(i)) 

輸出:

5 5 4 1 0 1 
# ### 
# # # 
# # # 
# # 
# ### 
0

你只需打印整個列表而不用重複它來打印你想要的角色。您需要使用for循環,就像您在readMaze函數中循環遍歷頂級列表和每個元素(這是一個字符列表)一樣,使用join將字符連接成一個字符串,將其打印出來,然後移動到下一行

# your input list has multiple nested sub-lists 
l = [ 
     ['5', ' ', '5', ' ', '4', ' ', '1', ' ', '0', ' ', '1'], 
     ['#', ' ', '#', '#', '#'], 
     ['#', ' ', '#', ' ', '#'], 
     ['#', ' ', '#', ' ', '#'], 
     ['#', ' ', ' ', ' ', '#'], 
     ['#', ' ', '#', '#', '#'] 
    ] 

# so we iterate over them... 
for sublist in l: 
    print(''.join(sublist)) # ...and concatenate them together before printing 

輸出:

5 5 4 1 0 1 
# ### 
# # # 
# # # 
# # 
# ### 
+0

太好了!非常感謝你的工作。 :) – vibeon7