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

如何让字典中含ASCII艺术的元素横向并排打印?

解决ASCII艺术横向排列问题

你的问题出在每个ASCII艺术是多行字符串,直接打印字典值时会把整个字符串作为一个整体输出,导致每个艺术块上下堆叠。要实现横向排列,需要把每个艺术块的对应行拆分后拼接。

修改后的代码如下:

def ABL():
    ABLs = {
        "B1": '''
         ---
        | 1 |
         ---
        ''',
        "B2": '''
         ---
        | 2 |
         ---
        ''',
        "B3": '''
         ---
        | 3 |
         ---
        ''',
        "B4": '''
         ---
        | 4 |
         ---
        '''
    }
    # 拆分每个ASCII艺术为行列表,过滤空行并去除首尾空白
    art_rows = [art.strip().split('\n') for art in ABLs.values()]
    # 按行合并所有艺术块的对应行,横向拼接后打印
    for row_parts in zip(*art_rows):
        print(' '.join(row_parts))

ABL()

代码说明

  • art.strip().split('\n'):把每个多行的ASCII艺术字符串去掉首尾空白,再拆分成单独的行,避免多余的空行干扰。
  • zip(*art_rows):将所有艺术块的第一行、第二行...分别打包成元组,确保同一行的内容能横向对齐。
  • ' '.join(row_parts):把同一行的各个艺术片段用空格连接,实现横向排列。

执行后输出效果:

---  ---  ---  ---
| 1 | | 2 | | 3 | | 4 |
 ---  ---  ---  ---

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 19:34:59