在Python列表中对嵌套字典进行排序? [复制]

Posted

技术标签:

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

如何按价格排序?

【问题讨论】:

【参考方案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 属性。

【讨论】:

以上是关于在Python列表中对嵌套字典进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

在 Python 中对嵌套列表进行排序和分组

如何在python中对具有浮点值的列表进行排序? [复制]

如何一次对字典或列表中的所有嵌套字典和列表进行排序?

Python字典嵌套字典排序,该怎么处理?

Python 字典 列表 嵌套 复杂排序大全

Python字典字典列表嵌套字典排序