如何在一行上打印列表元素

时间:2018-06-10 17:05:31

标签: python python-3.x

x = int(input())
y = int(input())
z = int(input())
n = int(input())
for i in range( x + 1):
        for j in range( y + 1):
            for k in range( z + 1):
                if ( ( i + j + k) != n ):
                    print ([ i, j, k], end = ", "])

我的输出:

[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]]

我如何获得双支撑?如果我对print语句进行更改,它会说编译错误

3 个答案:

答案 0 :(得分:0)

请使用以下方法

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

示例输出:

services.AddHttpClient();

答案 1 :(得分:0)

由于您要打印的内容与Python打印列表的方式完全相同,您可以创建列表,然后打印它。

使用列表推导和itertools.product

from itertools import product

x, y, z = 1, 1, 1
n = 2

out = [[i, j, k] for i, j, k in product(range(x+1), range(y+1), range(z+1))
                 if i + j + k != n ]

print(out)
# [[0, 0, 0], [0, 0, 1], [0, 1, 0], [1, 0, 0], [1, 1, 1]]

答案 2 :(得分:0)

@Srivani ,您可以尝试以下代码(1行语句)来打印以逗号分隔的列表。

  

http://rextester.com/XZJ80681在线试用。

x = int(input()) # 1
y = int(input()) # 1
z = int(input()) # 1
n = int(input()) # 2

# One line code to print lists separated by comma (without including comma at end)
print(", ".join([str([i, j, k]) for i in range(x + 1)  for j in range(y + 1)  for k in range(z + 1) if ( i + j + k) != n ]).strip() );

»输出

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