Python初学者如何从列表取值并绘制树形图案?
解决Python列表绘制树形图案的问题
你的代码存在两个关键问题,导致无法呈现树形结构:
- 处理完每一行的所有元素后没有执行换行操作,所有行的内容被拼接成一长串输出
- 值为0时输出了字符"0",而非要求的空白字符
修正后的代码如下:
picture = [ [0,0,0,1,0,0,0], [0,0,1,1,1,0,0], [0,1,1,1,1,1,0], [1,1,1,1,1,1,1], [0,0,0,1,0,0,0], [0,0,0,1,0,0,0] ] for row in picture: line_content = "" for pixel in row: if pixel == 0: line_content += " " # 用空白字符替代0 else: line_content += "x" print(line_content) # 每行处理完成后打印,自动换行
也可以用更简洁的写法,借助列表推导式快速生成每行内容:
for row in picture: print("".join("x" if pixel == 1 else " " for pixel in row))
运行后会得到正确的树形输出:
x xxx xxxxxx xxxxxxx x x
内容的提问来源于stack exchange,提问作者mrsluggan s
相关产品推荐
相关产品推荐

