Skip to main content
 首页 » 编程设计

python之在 Python 中对嵌套字典进行排序

2025年05月04日11开发

我有以下字典。

var = a = {  
  'Black': { 'grams': 1906, 'price': 2.05}, 
  'Blue': { 'grams': 9526, 'price': 22.88}, 
  'Gold': { 'grams': 194, 'price': 8.24}, 
  'Magenta': { 'grams': 6035, 'price': 56.69}, 
  'Maroon': { 'grams': 922, 'price': 18.76}, 
  'Mint green': { 'grams': 9961, 'price': 63.89}, 
  'Orchid': { 'grams': 4970, 'price': 10.78}, 
  'Tan': { 'grams': 6738, 'price': 50.54}, 
  'Yellow': { 'grams': 6045, 'price': 54.19} 
} 

如何根据价格对其进行排序。因此生成的字典将如下所示。

result = {  
  'Black': { 'grams': 1906, 'price': 2.05}, 
  'Gold': { 'grams': 194, 'price': 8.24}, 
  'Orchid': { 'grams': 4970, 'price': 10.78}, 
  'Maroon': { 'grams': 922, 'price': 18.76}, 
  'Blue': { 'grams': 9526, 'price': 22.88}, 
  'Tan': { 'grams': 6738, 'price': 50.54}, 
  'Magenta': { 'grams': 6035, 'price': 56.69}, 
  'Mint green': { 'grams': 9961, 'price': 63.89},  
} 

请您参考如下方法:

从有序项元组列表构造一个 OrderedDict:

from collections import OrderedDict 
 
ordered = OrderedDict(sorted(a.items(), key=lambda i: i[1]['price'])) 

(.items() 假定 Python 3,在 Python 2 中 iteritems 应该做同样的事情。)