【问题标题】:Reading a maze file in python and printing out the maze line by line在python中读取迷宫文件并逐行打印出迷宫
【发布时间】:2016-12-03 00:52:34
【问题描述】:

我正在用 Python 创建一个迷宫遍历器。最初我将迷宫 txt 文件作为列表读取,但我无法逐行打印迷宫。给定行数和列数,入口的行数和列数,出口的行数和列数。

我的输出是:

    [['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

【问题讨论】:

  • 您有嵌套列表。您需要使用 for 循环,就像您在 readMaze 函数中那样遍历顶级列表,并在每个元素(这是一个字符列表)上,使用 join 将字符连接到一个字符串,打印它,然后移动到下一行。
  • 好的,谢谢,我会编辑它,如果我遇到任何问题,请告诉您。

标签: python-2.7 list maze pyscripter


【解决方案1】:

如果你的maze 列表是这样的:

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

您可以使用joinfor loop 打印它并获得所需的打印输出,如下例所示:

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

输出:

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

【讨论】:

    【解决方案2】:

    您只是打印整个列表,而无需对其进行迭代以按您想要的方式打印字符。您需要使用 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  
    # ###  
    # # #  
    # # #  
    #   #  
    # ###
    

    【讨论】:

      猜你喜欢
      • 2020-06-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-11-15
      • 1970-01-01
      • 2011-09-22
      • 1970-01-01
      • 2021-05-25
      相关资源
      最近更新 更多