加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

在Python字典中按嵌套字典排序

发布时间:2020-12-16 21:38:55 所属栏目:Python 来源:网络整理
导读:我有以下结构 { 'searchResult' : [{ 'resultType' : 'station','ranking' : 0.5 },{ 'resultType' : 'station','ranking' : 0.35 },'ranking' : 0.40 } ]} 并希望得到 { 'searchResult' : [{ 'resultType' : 'station','ranking' : 0.4 },'ranking' : 0.35
我有以下结构
{
    'searchResult' : [{
            'resultType' : 'station','ranking' : 0.5
        },{
            'resultType' : 'station','ranking' : 0.35
        },'ranking' : 0.40
        }
    ]
}

并希望得到

{
    'searchResult' : [{
            'resultType' : 'station','ranking' : 0.4
        },'ranking' : 0.35
        }
    ]
}

尝试了代码没有成功

result = sorted(result.items(),key=lambda k: k[1][0][1]["ranking"],reverse=True)

解决方法

如果您可以就地更改对象.
a = {
    'searchResult' : [{
                       'resultType' : 'station','ranking' : 0.5
                      },{
                       'resultType' : 'station','ranking' : 0.35
                      },{
                      'resultType' : 'station','ranking' : 0.40
                      }]
  }

a["searchResult"].sort(key=lambda d: d["ranking"],reverse=True)

或者你可以制作一份深层拷贝以保留原件

from copy import deepcopy


srt_dict = deepcopy(a)
srt_dict["searchResult"].sort(key=lambda d: d["ranking"],reverse=True)

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读