Python不用逗号打印

9

如何在不显示方括号和逗号的情况下打印列表?

我有一个像这样的排列列表:

   [1, 2, 3]
   [1, 3, 2] etc.. 

我希望能够像这样打印它们:1 2 3
9个回答

25
blah = [ [1,2,3], [1,3,2] ]

for bla in blah:
    print ' '.join(map(str, bla))

值得注意的是,map有些过时了,根据需求最好改用生成器表达式或列表推导式。这样做的好处是它可以在 Python 2.x 和 3.x 中都兼容,在 2.x 中会生成一个列表,而在 3.x 中则保持惰性计算。

因此,以上代码可以使用生成器表达式来重写:

for bla in blah:
    print ' '.join(str(n) for n in bla)

或使用字符串格式化:

for bla in blah:
    print '{} {} {}'.format(*bla)

1
最后一个要求列表必须有三个元素。你可以使用类似于 " ".join(['{}'] * len(bla)) 的东西,但那不太好看,或者 ("{} "*len(bla))[:-1].format - phant0m
建议使用列表推导和生成器表达式,而不是map()函数。 - Thijs van Dien

4
如果列表是
l=[1,2,3,4,5]

打印列表时不显示括号和逗号:

print " ".join(map(str,l))

#1 2 3 4 5

2
Number_list = [1, 2, 3, 4, 5]
Print(*Number_list, sep="") # empty quote

当回答一个旧问题时,如果您包含一些上下文来解释您的答案如何帮助,特别是对于已经有被接受答案的问题,那么您的答案将对其他StackOverflow用户更有用。请参阅:如何撰写好的答案 - David Buck

1

例如,您有一个名为“names”的列表。

names = ["Sam", "Peter", "James", "Julian", "Ann"]
for name in range(len(names)):
    print names[name],

0

你可以做到这一点。

代码:

list = [[1, 2, 3], [3, 2, 1]]

for item in list:
    print("{}".format(item, end="\n")

结果:

[1, 2, 3]
[3, 2, 1]

0
n = int(input())
i = 1
x = []
while (i <= n):
    x.append(i)
    i = i+1
print(*x, sep='')

假设 n 是用户输入的数字,您可以通过循环运行并将 i 到 n 的值添加到列表 x 中。最后,您可以使用空格('')分隔符打印数组(*x)。这将保持您的值以它们原来的格式存储,即数字。

0
In [1]: blah = [ [1,2,3], [1,3,2] ]

In [2]: for x in blah:
   ...:     print x[0],x[1],x[2]
   ...:     
1 2 3
1 3 2

In [3]: 

0
completedWord=['s','o','m','e',' ','w','o','r','d','s']
print(*completedWords,sep=' ')

输出 = s o m e w o r d s 请注意,在sep=' '中有两个空格。


-1
temp = [[2,3,5],[2,5,3]]
for each_temp in temp:
    if isinstance(each_temp,list):
        for nested_temp in each_temp:
            print nested_temp

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接