2010-01-26 5 views

답변

48

을, 당신은 표현에서 그들을 가질 수 없습니다 : 다음 구문 오류를 제공하지 않습니다 -

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

는 대조합니다. 보통 파이썬 2 문법을 사용하면 더 명확 해집니다 :

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

그게 옳지 않습니다. :) my_item 주위에 괄호로 묶는 것은 당신을 속입니다.

이 코드는 Python 3에서 변경되었습니다. 여기서 print 이고 코드는 잘 작동합니다.

+21

당신은 미래에서이 기능을 가져올 수 있습니다'__future__ 수입 print_function' –

+0

에서 THC4k @ - 동의,이 것 코드가 * 2.6과 3.0 모두에서 컴파일 될 수 있는지 확인하십시오. –

+0

그렇습니다. 특별히 2.6을 언급했기 때문에 좋은 지적입니다. –

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 3.x가 아닌 python 2.x에만 해당됩니다. '[abc "]에서 char에 대한 print (char)는 python 3.x에서 유효합니다 (그러나 권장하지 않습니다). – jDo