Bri*_*n D 4 python sorting dictionary
假设我有一本字典,如:
h=[('a',5), ('f', 3), ('b',3), ('c',3), ('d',1), ('e',4) ]
Run Code Online (Sandbox Code Playgroud)
我希望它排序如下:
[('a',5), ('e',4), ('b',3), ('c',3), ('f',3), ('d',1)]
Run Code Online (Sandbox Code Playgroud)
我可以用 Python 2 解决这个问题:
sortedList= sorted(h.iteritems(),key=lambda(k,v):(-v,k))
Run Code Online (Sandbox Code Playgroud)
我可以用这样的东西在 Python 3 中真正接近:
import operator
sortedList =sorted(h.items(), key=operator.itemgetter(1,0) , reverse=True)
Run Code Online (Sandbox Code Playgroud)
但结果是这样的
[('a',5), ('e',4), ('f',3), ('c',3), ('b',3), ('d',1)]
Run Code Online (Sandbox Code Playgroud)
我怎样才能逆转决胜局的操作?
你可以在 python 3 中使用这个对 sorted 函数的调用:
sortedList = sorted(h, key=lambda k: (-k[1], k[0]))
Run Code Online (Sandbox Code Playgroud)
这将给出与 python 2 排序相同的结果:
[('a',5), ('e',4), ('b',3), ('c',3), ('f',3), ('d',1)]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2702 次 |
| 最近记录: |