Python字典依据value排序

原创
2013/10/17 08:45
阅读数 7.2K

使用sorted将字典按照其value大小排序

>>> record = {'a':89, 'b':86, 'c':99, 'd':100}

>>> sorted(record.items(), key=lambda x:x[1])

[('b', 86), ('a', 89), ('c', 99), ('d', 100)]

sorted第一个参数要可迭代,可以为tuple, list



>>> items = [(1, 'B'), (1, 'A'), (2, 'A'), (0, 'B'), (0, 'a')]

>>> sorted(items)

[(0, 'B'), (0, 'a'), (1, 'A'), (1, 'B'), (2, 'A')]

为什么(0, 'B')在(0, 'a')前面?

因为ASCII码中大写字母排在在小写字母前面,使用str.lower()方法改变其顺序

>>> sorted(items, key=lambda x:(x[0], x[1].lower()))

[(0, 'a'), (0, 'B'), (1, 'A'), (1, 'B'), (2, 'A')]




展开阅读全文
打赏
0
2 收藏
分享
加载中
更多评论
打赏
0 评论
2 收藏
0
分享
返回顶部
顶部