Python 3.x 在Python中向嵌套列表中添加符号和模式?

Python 3.x 在Python中向嵌套列表中添加符号和模式?,python-3.x,Python 3.x,所以我正在尝试为我的任务创建一个地牢类型的游戏。但我不知道如何用嵌套列表创建这样的地图?任何帮助都将不胜感激 地图示例: +---+---+---+---+---+---+---+---+ | T | | | | | | | | +---+---+---+---+---+---+---+---+ | | | | T | | | | | +---+---+---+---+---+---+---+---+ | | | | |

所以我正在尝试为我的任务创建一个地牢类型的游戏。但我不知道如何用嵌套列表创建这样的地图?任何帮助都将不胜感激

地图示例:

+---+---+---+---+---+---+---+---+
| T |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | T |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | T |   |   |
+---+---+---+---+---+---+---+---+
|   | T |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | T |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | K |
+---+---+---+---+---+---+---+---+
world_map = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],\
             [' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]
current_row = 0
current_column = 0

def View_Map():
    for i in world_map:
        world_map[current_row][current_column] = "H/T"
        print(i)
列表:

+---+---+---+---+---+---+---+---+
| T |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | T |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | T |   |   |
+---+---+---+---+---+---+---+---+
|   | T |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | T |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | K |
+---+---+---+---+---+---+---+---+
world_map = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],\
             [' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]
current_row = 0
current_column = 0

def View_Map():
    for i in world_map:
        world_map[current_row][current_column] = "H/T"
        print(i)
这是我所拥有的:

+---+---+---+---+---+---+---+---+
| T |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | T |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | T |   |   |
+---+---+---+---+---+---+---+---+
|   | T |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | T |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | K |
+---+---+---+---+---+---+---+---+
world_map = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],\
             [' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]
current_row = 0
current_column = 0

def View_Map():
    for i in world_map:
        world_map[current_row][current_column] = "H/T"
        print(i)
我得到的输出:

+---+---+---+---+---+---+---+---+
| T |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   | T |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   | T |   |   |
+---+---+---+---+---+---+---+---+
|   | T |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   | T |   |   |   |
+---+---+---+---+---+---+---+---+
|   |   |   |   |   |   |   | K |
+---+---+---+---+---+---+---+---+
world_map = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],\
             [' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],\
             [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]
current_row = 0
current_column = 0

def View_Map():
    for i in world_map:
        world_map[current_row][current_column] = "H/T"
        print(i)

您可以使用字符串格式打印此内容,您需要打印

  • 数据中的每一行都有一个标题(
    '+--+-etc-+--+'
  • 数据中的每个单元格都有一个值V(
    '+V+'
  • 它们后面的结束行(
    '+--+-etc-+--+'
标题和单元格需要适应所有单元格内容的最大宽度,以获得外观均匀的映射

您可以这样做:

m = [['T', ' ', ' ', ' ', ' ', ' ', ' ', ' '], 
     [' ', ' ', ' ', 'T', ' ', ' ', ' ', ' '],
     [' ', ' ', ' ', ' ', ' ', 'T', ' ', ' '],
     [' ', 'T', ' ', ' ', ' ', ' ', ' ', ' '],
     [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
     [' ', ' ', ' ', ' ', ' ', ' ', ' ', ' '],
     [' ', ' ', ' ', ' ', 'T', ' ', ' ', ' '],
     [' ', ' ', ' ', ' ', ' ', ' ', ' ', 'K']]


def print_map(data):
    """Prints a list of lists, puts data centered
    into each boxand pads other boxes accordingly. """
    # max widht of all elelemts to be printed
    max_w = max(len(o) for l in data for o in l)
    # fitting header
    header = f"+-{'-' * max_w}-" * len(data[0]) + "+"
    for line in data:
        print(header)
        print("+", end="")
        for char in line:
            # center format each "box"
            print(f" {char:^{max_w}} +", end="")
        print()
    print(header)

print_map(m)
输出:

+---+---+---+---+---+---+---+---+ 
+ T +   +   +   +   +   +   +   +
+---+---+---+---+---+---+---+---+
+   +   +   + T +   +   +   +   +
+---+---+---+---+---+---+---+---+
+   +   +   +   +   + T +   +   +
+---+---+---+---+---+---+---+---+
+   + T +   +   +   +   +   +   +
+---+---+---+---+---+---+---+---+
+   +   +   +   +   +   +   +   +
+---+---+---+---+---+---+---+---+
+   +   +   +   + T +   +   +   +
+---+---+---+---+---+---+---+---+
+   +   +   +   +   +   +   + K +
+---+---+---+---+---+---+---+---+
如果您有“非1字符内容”,则代码将根据需要将其他单元格隔开:

+-------+-------+-------+-------+-------+-------+-------+-------+
+   T   +       +       +       +       +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       + TTTTT +       +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       +       +       +   T   +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +   T   +       +       +       +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       +       +       +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       +       +       +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       +       +   T   +       +       +       +
+-------+-------+-------+-------+-------+-------+-------+-------+
+       +       +       +       +       +       +       +   K   +
+-------+-------+-------+-------+-------+-------+-------+-------+

您应该阅读有关
str.join
方法的内容。尝试从
世界地图
中的一个子列表创建一个字符串,如下所示:
“| | | | | | |”
。如果你已经知道如何做到这一点,那么你可能已经知道如何做其余的事情了。你真的想要一本字典吗?对不起,我对Python不是很在行。是的,嵌套列表是作为模板提供的,所以希望它是嵌套列表形式。发布的代码使用循环将世界地图的同一字段反复设置为“H/T”,并打印一行-反复设置同一字段是浪费的,您可以在循环外执行一次,然后打印地图