在Python

时间:2018-05-27 18:11:42

标签: python python-3.x

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

for item in items:
    print(item)

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

有没有办法合并打印和循环。类似的东西:

print(item for item in items)

如果我错了,请纠正我!

2 个答案:

答案 0 :(得分:8)

您可以使用argument unpacking operator *(也称为“splat”运算符):

>>> items = [ "Abby","Brenda","Cindy","Diddy" ]
>>> print(*items, sep='\n')
Abby
Brenda
Cindy
Diddy
>>> 

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

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

print(item for item in items)

它会在items中的项目上创建generator,然后打印出来:

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

如果你想在Python 2.x中使用它,你需要先从__future__ module导入print_function

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

答案 1 :(得分:2)

您可以使用列表理解:

items = ["Abby", "Brenda", "Cindy", "Daddy"]
[print(item) for item in items]

和。 。 。你只需要在你的代码中添加两个字符!

这里有关于列表理解与生成器表达式的良好讨论:

Generator Expressions vs. List Comprehension

我认为要么有效。在这种情况下,genexp可能更有效,但listcomp更清楚地记录了您正在做的事情。