首页 > 解决方案 > 如何按python字典中值的最后一个字母排序?

问题描述

给定以下字典列表,我如何按名称的最后一个字母排序?

    list_of_dicts = [
    {'name': 'Jadis', 'year_of_birth': 0, 'gender': 'Female'},
    {'name': 'Peter', 'year_of_birth': 1927, 'gender': 'Male'},
    {'name': 'Susan', 'year_of_birth': 1928, 'gender': 'Female'},
    {'name': 'Edmund', 'year_of_birth': 1930, 'gender': 'Male'},
    {'name': 'Lucy', 'year_of_birth': 1932, 'gender': 'Female'}]

标签: pythonlistsortingdictionary

解决方案


您可以使用内置函数来做到这一点sorted(yourlist=, key=)

your_list你在哪里list_of_dictskey=你一起定义你希望输入列表如何排序的逻辑。在您的情况下,代码是:

sorted_list=sorted(list_of_dicts, key=lambda x: x['name'][-1])

lambda 函数允许您对原始列表中x['name']的每个字符的最后一个字符进行排序。x它在以下时间返回print (sorted_list)

[{'name': 'Edmund', 'year_of_birth': 1930, 'gender': 'Male'}, {'name': 
'Susan', 'year_of_birth': 1928, 'gender': 'Female'}, {'name': 'Peter', 
'year_of_birth': 1927, 'gender': 'Male'}, {'name': 'Jadis', 'year_of_birth': 
0, 'gender': 'Female'}, {'name': 'Lucy', 'year_of_birth': 1932, 'gender': 
'Female'}]

如您所见,排序列表遵循 'Edmund'->'Susan'->'Peter'->'Jadis'->'Lucy'


推荐阅读