首页 > 解决方案 > 如何在同一行打印 3D 数组?

问题描述

这是我的代码

def main():
x=eval(input())
y=eval(input())
z=eval(input())
n=eval(input())
s=[]
for i in range(0,x+1):
    for j in range(0,y+1):
        for k in range(0,z+1):
            if (i+j+k)!=n:
                print([i,j,k],end='')                
main()

预期输出为:

[[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]

我的输出是:

[0, 0, 0][0, 0, 1][0, 1, 0][1, 0, 0][1, 1, 1]

如何获得预期的输出?

标签: python-3.x

解决方案


您正在打印列表的元素。创建新列表,追加所有元素,然后打印完成列表:

def main():
    x=eval(input())
    y=eval(input())
    z=eval(input())
    n=eval(input())
    s=[]
    for i in range(0,x+1):
        for j in range(0,y+1):
            for k in range(0,z+1):
                if (i+j+k)!=n:
                    s.append([i,j,k])
    print(s)
main()

推荐阅读