如何让字典中含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
相关产品推荐
相关产品推荐

