Zac*_*ack 21 python lambda syntax-error
def sort_dictionary( wordDict ):
sortedList = []
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k) ):
sortedList.append( entry )
return sortedList
Run Code Online (Sandbox Code Playgroud)
该函数将接收包含以下信息的字典:{'this':1,'is':1,'a':1,'large':2,'sentence':1}我想让它生成列表列表,其中元素首先由字典的值从最大值到最小值排序,然后按字母顺序排列.
使用python 2.7.2运行时该函数工作正常,但我收到错误:
File "frequency.py", line 87
for entry in sorted(wordDict.iteritems(), key = lambda (k, v): (-v, k)):
^
SyntaxError: invalid syntax
Run Code Online (Sandbox Code Playgroud)
当我用python 3.2.3运行程序时.我一直在寻找原因,或2.7和3.2之间的语法差异,并且没有提出任何结果.任何帮助或修复将不胜感激.
unu*_*tbu 48
在Python3中不允许使用括号来解压缩lambda中的参数.请参阅PEP 3113.
lambda (k, v): (-v, k)
Run Code Online (Sandbox Code Playgroud)
而是使用:
lambda kv: (-kv[1], kv[0])
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27397 次 |
| 最近记录: |