[PYTHON] 파이썬 3.2 람다 구문 오류 [중복]
PYTHON파이썬 3.2 람다 구문 오류 [중복]
def sort_dictionary( wordDict ):
sortedList = []
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k) ):
sortedList.append( entry )
return sortedList
이 함수는 다음과 같은 정보가 포함 된 사전을 수신합니다. { 'this': 1, 'is': 1, 'a': 1, 'large': 2, 'sentence': 1} 목록 순서로 요소를 나열하여 목록을 생성하도록하고 싶습니다. 사전의 값에 따라 Largest에서 Smallest까지, 그 다음에 알파벳순으로 키로 표시됩니다.
이 함수는 python 2.7.2로 실행하면 정상적으로 작동하지만 오류가 발생합니다.
File "frequency.py", line 87
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k)):
^
SyntaxError: invalid syntax
파이썬 3.2.3으로 프로그램을 실행할 때. 나는 왜, 또는 2.7과 3.2 사이의 구문 차이가 있는지, 그리고 아무 것도 생각 해 내지 못했던 이유를 계속해서 조사해 왔습니다. 어떤 도움이나 수정 사항도 대단히 감사하겠습니다.
해결법
-
==============================
1.괄호를 사용하여 람다에서 인수를 푸는 것은 Python3에서 허용되지 않습니다. 이유는 PEP 3113을 참조하십시오.
괄호를 사용하여 람다에서 인수를 푸는 것은 Python3에서 허용되지 않습니다. 이유는 PEP 3113을 참조하십시오.
lambda (k, v): (-v, k)
대신 다음을 사용하십시오.
lambda kv: (-kv[1], kv[0])
from https://stackoverflow.com/questions/15712210/python-3-2-lambda-syntax-error by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 장고 관리자의 종속 인라인의 유효성 검사 (0) | 2018.11.25 |
---|---|
[PYTHON] 숫자를 고정 길이로 이진으로 변환 (0) | 2018.11.25 |
[PYTHON] HTTPError : HTTP 오류 403 : 금지됨 (0) | 2018.11.25 |
[PYTHON] TypeError 'x'객체에 '__getitem__'속성이 없습니다. (0) | 2018.11.25 |
[PYTHON] 어떻게하면 x 개의 원소마다리스트를 나누고 그 원소 x 개의 원소를 새로운리스트에 추가 할 수 있을까요? (0) | 2018.11.25 |