在Python中合并循环和打印语句

San*_*sad 1 python python-3.x

items = [ "Abby","Brenda","Cindy","Diddy" ]

for item in items:
    print(item)
Run Code Online (Sandbox Code Playgroud)

我用来为输出项编写这个语句.

有没有办法合并打印和循环.就像是:

print(item for item in items)
Run Code Online (Sandbox Code Playgroud)

如果我错了,请纠正我!

iCo*_*dez 8

您可以使用参数解包运算符*(也称为"splat"运算符):

>>> items = [ "Abby","Brenda","Cindy","Diddy" ]
>>> print(*items, sep='\n')
Abby
Brenda
Cindy
Diddy
>>> 
Run Code Online (Sandbox Code Playgroud)

您还需要设置,sep='\n'因为print默认使用空格分隔参数.


为了完整起见,当你这样做时:

print(item for item in items)
Run Code Online (Sandbox Code Playgroud)

它将在项目中创建一个生成器items,然后打印:

>>> items = [ "Abby","Brenda","Cindy","Diddy" ]
>>> print(item for item in items)
<generator object <genexpr> at 0x5ffffe02ee08>
>>>
Run Code Online (Sandbox Code Playgroud)

如果要在Python 2.x中使用它,则需要print_function先从__future__模块导入:

>>> from __future__ import print_function
>>> 
>>> items = [ "Abby","Brenda","Cindy","Diddy" ]
>>> print(*items, sep='\n')
Abby
Brenda
Cindy
Diddy
>>>
Run Code Online (Sandbox Code Playgroud)

  • 我知道这是为python 3.x标记的,但也应该添加一个注释,这在python 2.x中不起作用 (2认同)