当前位置:  开发笔记 > 编程语言 > 正文

Python 2.5字典2键排序

如何解决《Python2.5字典2键排序》经验,为你挑选了2个好方法。



1> S.Lott..:

你不能排序词典.您必须对项目列表进行排序.

以前的版本错了.如果有数值,则可以按相反顺序排序.这些就是这样做的.但这不是一般的.这只能起作用,因为值是数字.

a = { 'key':1, 'another':2, 'key2':1 }

b= a.items()
b.sort( key=lambda a:(-a[1],a[0]) )
print b

这是另一种选择,使用显式函数而不是lambda和cmp而不是key选项.

def valueKeyCmp( a, b ):
    return cmp( (-a[1], a[0]), (-b[1], b[0] ) )

b.sort( cmp= valueKeyCmp )
print b

更通用的解决方案实际上是两种不同的排序

b.sort( key=lambda a:a[1], reverse=True )
b.sort( key=lambda a:a[0] )
print b



2> Ricardo Reye..:
data = { 'keyC':1, 'keyB':2, 'keyA':1 }

for key, value in sorted(data.items(), key=lambda x: (-1*x[1], x[0])):
    print key, value


这是按价值排序,而不是关键.
推荐阅读
虎仔球妈_459
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有