为什么在以下列表理解中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]
因为 print 不是一个函数,它是一个语句,你不能在表达式中使用它们。如果您使用普通的 Python 2 语法,这会变得更加明显:
my_list=[1,2,3]
[print my_item for my_item in my_list]
这看起来不太对劲。:) my_item 周围的括号会欺骗您。
顺便说一句,这在 Python 3 中发生了变化,其中 print是一个函数,您的代码可以正常工作。
列表推导旨在创建一个列表。因此,无论我们在 2.7 或 3.x 中使用 print() 还是 print,在其中使用 print 都会出错。编码
[my_item for my_item in my_list]
创建一个列表类型的新对象。
print [my_item for my_item in my_list]
将这个新列表作为一个整体打印出来
参考:这里
这是一个语法错误,因为print
它不是一个函数。这是一个声明。由于您显然不关心 from 的返回值print
(因为它没有),所以只需编写正常循环:
for my_item in my_list:
print my_item
python 3 中的 print 使得如何使用它更加明显。
列表理解中的方括号表示输出实际上是一个列表。
L1=['a','ab','abc']
print([item for item in L1])
这应该可以解决问题。