MSK*_*MSK 6 python format variables line
我试图在Python中打印包含数字的列表,当它打印列表中的项目时,所有打印在同一行.
print ("{} ".format(ports))
Run Code Online (Sandbox Code Playgroud)
这是我的输出
[60, 89, 200]
Run Code Online (Sandbox Code Playgroud)
如何以这种形式查看结果:
60
89
200
Run Code Online (Sandbox Code Playgroud)
我试过了,print ("\n".join(ports))但那不起作用.
循环遍历列表并在新行上打印每个项目:
for port in ports:
print(port)
Run Code Online (Sandbox Code Playgroud)
或者在加入之前将整数转换为字符串:
print('\n'.join(map(str, ports)))
Run Code Online (Sandbox Code Playgroud)
或告诉print()使用换行作为分隔符,并使用*splat语法将列表作为单独的参数传递:
print(*ports, sep='\n')
Run Code Online (Sandbox Code Playgroud)
演示:
>>> 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
Run Code Online (Sandbox Code Playgroud)
我试过print("\n".join(ports))但是没有用.
你很近.唯一的问题是,不像print,join没有东西会自动转换为字符串; 你必须自己做.
例如:
print("\n".join(map(str, ports)))
Run Code Online (Sandbox Code Playgroud)
… 要么 …
print("\n".join(str(port) for port in ports))
Run Code Online (Sandbox Code Playgroud)
如果您不理解任何理解,或者map两者都与此相同*:
ports_strs = []
for port in ports:
ports_strs.append(str(port))
print("\n".join(ports_strs))
del ports_strs
Run Code Online (Sandbox Code Playgroud)
换句话说,map(str, ports)会给你列表['60', '89', '200'].
当然,从长远来看写出来是很愚蠢的.如果你打算使用一个明确的for陈述,你也可以print(port)直接每次循环,就像在jramirez的答案中一样.
*我其实在这里作弊; 两者都给你一个"惰性列表" 的迭代器,它实际上并不存在这些值.但就目前而言,我们可以假装它是一个列表.(在Python 2.x中,它是.)