Pythonic打印列表项的方法

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)

  • 如果没有,你可以在python2.6和更新版本上从__future__ import print_function`. (3认同)

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)


ytp*_*lai 6

[print(a) for a in list] 虽然打印出所有项目,但最后会给出一堆无类型