为什么print(x)
这里无效(SyntaxError
)在下面的列表理解?列表理解:为什么这是一个语法错误?
my_list=[1,2,3]
[print(my_item) for my_item in my_list]
对比 - 以下不给一个语法错误:
def my_func(x):
print(x)
[my_func(my_item) for my_item in my_list]
为什么print(x)
这里无效(SyntaxError
)在下面的列表理解?列表理解:为什么这是一个语法错误?
my_list=[1,2,3]
[print(my_item) for my_item in my_list]
对比 - 以下不给一个语法错误:
def my_func(x):
print(x)
[my_func(my_item) for my_item in my_list]
由于打印是不是一个函数,这是一个语句,你不能让他们的表情。如果使用普通的Python 2语法,这会变得更加明显:
my_list=[1,2,3]
[print my_item for my_item in my_list]
这看起来不太正确。 :)围绕my_item的括号会欺骗你。
这已经改变了在Python 3中,顺便说一句,其中打印是函数,其中你的代码工作得很好。
这是一个语法错误,因为print
不是函数。这是一个声明。既然你显然不从print
关心的返回值(因为它有没有),只写正常的循环:
for my_item in my_list:
print my_item
列表理解的目的是创建一个列表。因此,无论我们使用print()还是使用2.7或3.x打印,在其中使用print都会给出错误。代码
[my_item for my_item in my_list]
产生一个新的对象类型列表。
print [my_item for my_item in my_list]
打印出这个新的列表作为一个整体
参考:here
*“无论我们使用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
您可以从以后导入该功能:'从__future__进口print_function' – 2010-01-26 17:16:13
@ THC4k - 我同意,这将使确保代码可以编译* * 2.6和3.0 – 2010-01-26 17:20:45
正确的,因为它明确提到2.6,这是一个很好的观点。 – 2010-01-26 22:33:03