python - 如何按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'}]
解决方案
您可以使用内置函数来做到这一点sorted(yourlist=, key=)
。
your_list
你在哪里list_of_dicts
和key=
你一起定义你希望输入列表如何排序的逻辑。在您的情况下,代码是:
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'
推荐阅读
- java - 最小交替二进制系列计数(硬币翻转问题)
- c# - C# MongoDB.Driver .NET 5 慢查询时间
- postgresql - 如何使用 Npgsql 查询某些 jsonb 字段
- java - 在带有 Maven 和 Java 14 的 NetBeans 12 中使用“清理和构建项目”时出现类路径错误
- r - 在 highcharter 中是否有来自 ggplot 的“geom_density_2d”的替代方案?
- d3.js - D3 Plus 环网截断
- python - 在功能性 Keras 模型中使用 lambda 重塑输入
- autohotkey - 使用自动热键编写多调希腊语
- reactjs - 使用无效数据调用的函数 Query.startAfter()
- c# - 将 DSL 查询转换为 NEST (elasticsearch)