在Python中单独打印变量的每个项目

时间:2013-11-12 22:20:48

标签: python variables format line

我正在尝试在Python中打印包含数字的列表,当它打印列表中的项目时,所有打印都在同一行。

print ("{} ".format(ports))

这是我的输出

[60, 89, 200]

如何以这种形式查看结果:

60
89
200

我尝试了print ("\n".join(ports)),但这不起作用。

4 个答案:

答案 0 :(得分:6)

循环列表并在新行上打印每个项目:

for port in ports:
    print(port)

或在加入之前将整数转换为字符串:

print('\n'.join(map(str, ports)))

或告诉print()使用换行符作为分隔符,并使用* splat语法将列表作为单独的参数传递:

print(*ports, sep='\n')

演示:

>>> ports = [60, 89, 200]
>>> for port in ports:
...     print(port)
... 
60
89
200
>>> print('\n'.join(map(str, ports)))
60
89
200
>>> print(*ports, sep='\n')
60
89
200

答案 1 :(得分:6)

  

我尝试过打印(“\ n”.join(ports))但不起作用。

你非常接近。唯一的问题是,与print不同,join不会自动将内容转换为字符串;你必须自己做。

例如:

print("\n".join(map(str, ports)))

......或......

print("\n".join(str(port) for port in ports))

如果您不理解任何理解或map,则两者都与此相同*:

ports_strs = []
for port in ports:
    ports_strs.append(str(port))
print("\n".join(ports_strs))
del ports_strs

换句话说,map(str, ports)会为您提供列表['60', '89', '200']

当然,从长远来看写出来是很愚蠢的。如果您打算使用明确的for语句,那么每次循环时都可以直接print(port),就像在jramirez的答案中一样。


*我实际上在这里作弊;两者都在一个“懒惰列表”上给你一个迭代器,它实际上并不存在这些值。但就目前而言,我们可以假装它是一个列表。 (在Python 2.x中,它是。)

答案 2 :(得分:2)

如果您使用的是Python 3.x:

>>> ports = [60, 89, 200]
>>> print(*ports, sep="\n")
60
89
200
>>>

否则,这将起作用:

>>> ports = [60, 89, 200]
>>> for p in ports:
...     print p
...
60
89
200
>>>

答案 3 :(得分:1)

ports = [60, 89, 200]

for p in ports:
    print (p)