我正在尝试在 Python 中打印一个包含数字的列表,并且当它打印列表中的项目时,它们都打印在同一行上。
print ("{} ".format(ports))
这是我的输出
[60, 89, 200]
我怎样才能看到这种形式的结果:
60
89
200
我已经尝试过print ("\n".join(ports))
,但这不起作用。
循环列表并在新行上打印每个项目:
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
我试过 print ("\n".join(ports)) 但不起作用。
你很亲密。唯一的问题是,与 不同print
,join
它不会自动将内容转换为字符串;你必须自己做。
例如:
print("\n".join(map(str, ports)))
……或者……</p>
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 中,确实如此。)
如果您使用的是 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
>>>
ports = [60, 89, 200]
for p in ports:
print (p)