def sort_dictionary(wordDict):
sortedList = []
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k)):
sortedList.append(entry)
return sortedList
La funzione avrebbe ricevuto un dizionario contenente informazioni quali: { 'questo': 1, 'è': 1, 'a': 1, 'grande': 2, ' frase ': 1} Mi piacerebbe averlo generare un elenco di liste, con gli elementi ordinati prima dai valori del dizionario dal più grande al più piccolo, quindi dai tasti in ordine alfabetico.Python 3.2 Lambda Errore di sintassi
La funzione funziona bene se eseguito con Python 2.7.2, ma ricevo l'errore:
File "frequency.py", line 87
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k)):
^
SyntaxError: invalid syntax
quando ho eseguito il programma con Python 3.2.3. Ho cercato dappertutto un motivo per cui, o differenze di sintassi tra 2.7 e 3.2, e non ho trovato nulla. Qualsiasi aiuto o correzione sarebbe molto apprezzato.
Vale la pena notare che mettere spazi tra il '=' e un argomento è contro [PEP-8] (http://www.python.org/dev/ raccomandazioni di peps/pep-0008/# other-recommendations). –