1

我正在尝试打印一行代码,但是代码很多,我认为如果我将它们全部打印在一行上会看起来更整洁。我正在尝试使用 for 循环打印一个列表,并且我想将它全部打印在同一行上。

    for i in ALLROOMS:
            print(i.name)
4

4 回答 4

4

使用end=" "

print (i.name, end=" ")

例子:

In [2]: for i in range(5):
   ...:     print(i, end=" ")
   ...:     
0 1 2 3 4 

帮助print()

print(value, ..., sep=' ', end='\n', file=sys.stdout)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:  string inserted between values, default a space.
end:  string appended after the last value, default a newline.
于 2012-11-29T14:10:42.493 回答
3

你的意思是:


print "|".join(str(v) for v in L)  # => 1|2|3
#still can add condition
print "|".join(str(v) for v in L if v>0) # =>1|2|3

当然也可以换成“|” 任何你喜欢的角色。

如果列表中的所有项目都是字符串,你可以

打印 "".join(L)

于 2012-11-29T14:21:46.343 回答
1

您可能还需要考虑pprint 模块模块:

from pprint import pprint
pprint(i.name)

它不一定会在同一行上打印,但它可以在宽度等方面进行定制——通常是产生“更具可读性”输出的好方法。

于 2012-11-29T14:13:53.457 回答
0

你可以做

print(*tuple(i.name for i in ALLROOMS))
于 2012-11-29T14:16:09.197 回答