Gui*_*ron 106 python printing list-comprehension list
我想知道是否有更好的方法来打印Python列表中的所有对象,而不是:
myList = [Person("Foo"), Person("Bar")]
print("\n".join(map(str, myList)))
Foo
Bar
Run Code Online (Sandbox Code Playgroud)
我读这种方式并不是很好:
myList = [Person("Foo"), Person("Bar")]
for p in myList:
print(p)
Run Code Online (Sandbox Code Playgroud)
是不是有类似的东西:
print(p) for p in myList
Run Code Online (Sandbox Code Playgroud)
如果没有,我的问题是......为什么?如果我们可以用综合列表来做这种事情,为什么不把它作为列表之外的简单陈述呢?
And*_*ark 201
假设您使用的是Python 3.x:
print(*myList, sep='\n')
Run Code Online (Sandbox Code Playgroud)
你可以在Python 2.x中使用相同的行为from __future__ import print_function
,正如mgilson在评论中所指出的那样.
使用Python 2.x上的print语句,您将需要某种迭代,关于print(p) for p in myList
不起作用的问题,您可以使用以下内容执行相同的操作并且仍然是一行:
for p in myList: print p
Run Code Online (Sandbox Code Playgroud)
对于使用的解决方案'\n'.join()
,我更喜欢列表推导和生成器,map()
所以我可能会使用以下内容:
print '\n'.join(str(p) for p in myList)
Run Code Online (Sandbox Code Playgroud)
luc*_*asg 27
我经常用这个 :
#!/usr/bin/python
l = [1,2,3,7]
print "".join([str(x) for x in l])
Run Code Online (Sandbox Code Playgroud)