我正在尝试在Python中打印包含数字的列表,当它打印列表中的项目时,所有打印都在同一行。
print ("{} ".format(ports))
这是我的输出
[60, 89, 200]
如何以这种形式查看结果:
60
89
200
我尝试了print ("\n".join(ports))
,但这不起作用。
答案 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)