2012-04-11 2 views
1

파이썬 2.7로 작성된 코드를 파이썬 2.6으로 다시 작성하려고합니다. 이유는 코드가 실행되는 것으로 가정 된 서버가 파이썬 2.6이고 관리자가 파이썬 2.7 이상을 설치하지 않기 때문입니다.목록 이해 및 람다 파이썬 2.6 vr. python 2.7

일반적으로이 작업은 정상적으로 수행되었지만 다음과 같은 문제점이 발견되었습니다. 원래 코드에서 줄 (또는 비슷한) :

g = lambda x : ['{:d}'.format(i) for i in x] 
g([1,2,3,4]) 

잘 작동했습니다. 그러나 Python 2.6에서는 오류가 발생합니다. 문서에서이 주제와 관련된 내용을 찾을 수 없습니다.

이유가 무엇입니까? 이 문제에 대한 간단한 해결책이 있습니까? 즉, 동일한 구문 (동일한 의미)이지만 다른 구문을 사용하는 람다 식 정의?

답변

4

파이썬 2.6 필드 이름이 필요할 때 (Format String Syntax 참조). 파이썬 2.7 이상, it can be omitted에서 :

버전 2.7 변화 : 위치 적 인자 지시자가 생략 될 수 있으므로 '{} {}' '{0} {1}' 동일하다.

g = lambda x : ['{0:d}'.format(i) for i in x] 
g([1,2,3,4]) 
:

그래서 당신은 당신의 코드를 파이썬 2.6과 호환 될 수 있도록처럼 작성하려는 경우

0

2.6에서 str.format()은 위치 지정자가 있어야합니다 ().

g = lambda x : ['{0:d}'.format(i) for i in x]