【问题标题】:Sort nested dictionary inside a list in Python? [duplicate]在Python列表中对嵌套字典进行排序? [复制]
【发布时间】:2018-10-20 08:42:15
【问题描述】:
[ { "PricingOptions": { "Price": 51540.72, "Agents": [ 4056270 ] } }, { "PricingOptions": { "Price": 227243.14, "Agents": [ 4056270],} } ]

如何按价格排序?

【问题讨论】:

    标签: python list dictionary


    【解决方案1】:
    data = [ { "PricingOptions": { "Price": 51540.72, "Agents": [ 4056270 ] } }, { "PricingOptions": { "Price": 227243.14, "Agents": [ 4056270],} } ]
    newlist = sorted(data, key=lambda k: k['PricingOptions']["Price"])
    print(newlist)
    

    输出:

    [{'PricingOptions': {'Price': 51540.72, 'Agents': [4056270]}}, {'PricingOptions': {'Price': 227243.14, 'Agents': [4056270]}}]
    

    降序

    newlist = sorted(data, key=lambda k: k['PricingOptions']["Price"], reverse=True)
    print(newlist)
    #[{'PricingOptions': {'Price': 227243.14, 'Agents': [4056270]}}, {'PricingOptions': {'Price': 51540.72, 'Agents': [4056270]}}]
    

    【讨论】:

    • 我的列表格式不一样,部分PricingOptions有多个[Price, Agent]条目。因此,您提供的解决方案将显示此类情况的关键错误。例如,data = [ { "PricingOptions": { "Price": 51540.72, "Agents": [ 4056270 ] } }, { "PricingOptions": { ["Price": 227243.14, "Agents": [ 4056270], [ “价格”:454545 “代理商”:[4056454]}}]
    【解决方案2】:

    您可以通过应用lambda 表达式来使用sorted 方法。

    sort_list = sorted(data, key=lambda elem: elem['PricingOptions']["Price"])
    

    输出

    [{'PricingOptions': {'Price': 51540.72, 'Agents': [4056270]}}, {'PricingOptions': {'Price': 227243.14, 'Agents': [4056270]}}]
    

    如果你想sort 列表降序,你只需将True 分配给reverse 属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-01-21
      • 2016-10-31
      • 1970-01-01
      • 2019-02-08
      • 1970-01-01
      • 2016-10-17
      • 2021-03-08
      相关资源
      最近更新 更多