python 字典排序

import operator  
x = [{ 'id': '259', 'size': '6400','rank':'7'}, { 'id': '260', 'size': '6239','rank':'4'}, { 'id': '261', 'size': '6854','rank':'27'}]
sorted_x = sorted(x, key=operator.itemgetter('rank')) 
print sorted_x 

我有这样一个字典列表,我想根据rank值大小排序,上面代码可以执行,但不能根据rank值大小排序,把rank值改成整型就可以。。

阅读 5k
3 个回答

x.sort(key=lambda x:int(x['rank']))

字符串比较大小的方式是挨个字符比较的,比如,'100'小于'6'的值就是true

你上面的例子其实已经进行了排序,只是这个排序是按照字符串的比较规则进行的。字符串的比较是27<4<7的。
通过上面进行转化就能按照整形进行比较了。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题