在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列表中对嵌套字典进行排序? [复制]的主要内容,如果未能解决你的问题,请参考以下文章