我有以下字典列表:
test_list = [
{'sr_no': 1, 'recipe_type': 'Main Dish', 'name': 'Salmon & Brown Rice'},
{'sr_no': 2, 'recipe_type': 'Side Dish', 'name': 'Cupcakes'},
{'sr_no': 3, 'recipe_type': 'Main Dish', 'name': 'Whole chicken'},
{'sr_no': 4, 'recipe_type': 'Desserts', 'name': 'test'}
]
我需要根据name
索引值按字母顺序对其进行排序。如下:
test_list = [
{'sr_no': 2, 'recipe_type': 'Side Dish', 'name': 'Cupcakes'},
{'sr_no': 1, 'recipe_type': 'Main Dish', 'name': 'Salmon & Brown Rice'},
{'sr_no': 4, 'recipe_type': 'Desserts', 'name': 'test'}
{'sr_no': 3, 'recipe_type': 'Main Dish', 'name': 'Whole chicken'},
]
我在SO和谷歌上搜索过这个,但没有找到确切的答案。
您可以将key
函数传递给sorted
:,该函数从每个dict返回name
>>> import pprint
>>> test_list = [
... {'sr_no': 1, 'recipe_type': 'Main Dish', 'name': 'Salmon & Brown Rice'},
... {'sr_no': 2, 'recipe_type': 'Side Dish', 'name': 'Cupcakes'},
... {'sr_no': 3, 'recipe_type': 'Main Dish', 'name': 'Whole chicken'},
... {'sr_no': 4, 'recipe_type': 'Desserts', 'name': 'test'}
... ]
>>> pprint.pprint(sorted(test_list, key=lambda x: x['name'].lower()))
[{'name': 'Cupcakes', 'recipe_type': 'Side Dish', 'sr_no': 2},
{'name': 'Salmon & Brown Rice', 'recipe_type': 'Main Dish', 'sr_no': 1},
{'name': 'test', 'recipe_type': 'Desserts', 'sr_no': 4},
{'name': 'Whole chicken', 'recipe_type': 'Main Dish', 'sr_no': 3}]