2010-01-26 69 views

回答

48

由于打印是不是一个函数,这是一个语句,你不能让他们的表情。如果使用普通的Python 2语法,这会变得更加明显:

my_list=[1,2,3] 
[print my_item for my_item in my_list] 

这看起来不太正确。 :)围绕my_item的括号会欺骗你。

这已经改变了在Python 3中,顺便说一句,其中打印函数,其中你的代码工作得很好。

+21

您可以从以后导入该功能:'从__future__进口print_function' – 2010-01-26 17:16:13

+0

@ THC4k - 我同意,这将使确保代码可以编译* * 2.6和3.0 – 2010-01-26 17:20:45

+0

正确的,因为它明确提到2.6,这是一个很好的观点。 – 2010-01-26 22:33:03

6

这是一个语法错误,因为print不是函数。这是一个声明。既然你显然不从print关心的返回值(因为它有没有),只写正常的循环:

for my_item in my_list: 
    print my_item 
5

列表理解的目的是创建一个列表。因此,无论我们使用print()还是使用2.7或3.x打印,在其中使用print都会给出错误。代码

[my_item for my_item in my_list] 

产生一个新的对象类型列表。

print [my_item for my_item in my_list] 

打印出这个新的列表作为一个整体

参考:here

+2

*“无论我们使用print()还是打印2.7或3.x”*这只适用于python 2.x,不适用于python 3.x. '[print(char)for char in“abc”]'在python 3.x中是有效的(但不鼓励) – jDo 2016-04-28 19:22:17

相关问题