You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python中二维列表(数组)的字符替换与控制台打印问题

嘿,我懂你想把这个二维迷宫数组转换成不同字符输出到控制台的需求,这事儿其实挺容易实现的,给你几个实用的方案,你可以按需选择:

基础字符映射方案

这是最直观的方法,用一个字典来定义数字和字符的对应关系,遍历数组后把每一行拼接成字符串打印就行,灵活性很高,想换字符直接改映射就行:

maze_a = [
    [1,1,1,1,1,1,1,0,1,1,1,1,1,1,1],
    [1,0,0,0,0,0,1,0,1,0,0,0,0,0,1],
    [1,0,1,1,1,0,1,0,1,1,1,1,1,0,1],
    [1,0,1,0,1,0,1,0,0,0,0,0,1,0,1],
    [1,0,1,0,1,0,1,1,1,1,1,0,1,0,1],
    [1,0,1,0,0,0,0,0,0,0,0,0,1,0,1],
    [1,1,1,0,1,1,1,1,1,1,1,1,1,0,1],
    [1,0,0,0,0,0,1,0,0,0,0,0,0,0,1],
    [1,0,1,1,1,0,1,0,1,1,1,1,1,1,1],
    [1,0,1,0,1,0,1,0,0,0,0,0,0,0,1],
    [1,0,1,0,1,0,1,1,1,1,1,1,1,0,1],
    [1,0,0,0,1,0,0,0,1,0,1,0,1,0,1]  # 补全了省略的部分,你可根据实际数组调整
]

# 自定义字符映射:1对应墙,0对应空地,你可以随便替换成喜欢的字符
char_mapping = {1: '#', 0: ' '}

# 遍历每一行并转换输出
for row in maze_a:
    # 将每行的每个元素转换为对应字符,再拼接成字符串打印
    print(''.join([char_mapping[cell] for cell in row]))

如果你想让迷宫视觉效果更好,比如把1换成实心方块█,0换成点·,直接改char_mapping就行,非常方便。

简洁版实现(无需字典)

如果你的字符映射很简单,比如只有两种情况,也可以用lambda表达式配合map函数快速实现,不用单独定义字典:

for row in maze_a:
    print(''.join(map(lambda cell: '█' if cell == 1 else '·', row)))
进阶:带颜色的控制台输出

要是想让迷宫更醒目,还可以用ANSI转义码实现带颜色的输出(大部分现代终端都支持,比如Windows Terminal、Linux/macOS终端):

# 定义ANSI颜色代码
RED_WALL = '\033[91m'
WHITE_SPACE = '\033[97m'
RESET_COLOR = '\033[0m'

for row in maze_a:
    line_segments = []
    for cell in row:
        if cell == 1:
            # 红色的墙
            line_segments.append(f"{RED_WALL}█{RESET_COLOR}")
        else:
            # 白色的空地
            line_segments.append(f"{WHITE_SPACE}·{RESET_COLOR}")
    print(''.join(line_segments))

这样输出的迷宫墙是红色,空地是白色,辨识度会更高。

内容的提问来源于stack exchange,提问作者Brent Vaalburg

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.20 10:39:55