2010-01-26 84 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

相關問題