python - Python使用键对字典进行排序
问题描述
Python 排序字典。我想使用名称键对下面的字典进行排序。
我试试这个但不工作。
{k: v for k, v in sorted(mydict.items(), key=lambda item: item[1])}
样本字典
[
{
'id': 34,
'pid': 7,
'name': '1.1. Data Foo',
'open': 'open',
'children' : [
{
'id': 23,
'pid': 89,
'name': '1.1.1. Data 4',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '1.1.4. Data 6',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '1.1.2. Data 14',
'open': 'open'
},
]
},
{
'id': 32,
'pid': 7,
'name': '1.3. Data Bar',
'open': 'open',
'children' : [
{
'id': 23,
'pid': 89,
'name': '1.2.1. Data 14',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '1.4.4. Data 86',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '1.0.2. Data 114',
'open': 'open'
},
]
},
{
'id': 33,
'pid': 7,
'name': '1.2. Data Rex'
'open': 'open',
'children' : [
{
'id': 23,
'pid': 89,
'name': '2.1.1. Data 4o0',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '14.1.4. Data 676',
'open': 'open'
},
{
'id': 23,
'pid': 89,
'name': '1.11.2. Data 1423',
'open': 'open'
},
]
},
]
解决方案
假设您要按name
列表中每个项目的第一级中的 排序,下面的单行将对其进行排序。
a_list.sort(key=lambda x: x['name'])
推荐阅读
- java - 通过将正则表达式直接包含在模式中,在 AVRO 中对字段进行 Java 数据验证
- mysql - 对给定数据集的数据求和,并在 mysql 查询中显示如下输出
- python - 场景间重用的实例
- visual-studio - Visual Studio 2019 缺少部分视图和生成页面模型的添加页面选项对话框?
- reactjs - 使用 openweather API 和 ReactJS 处理错误 404
- mysql - 为什么设置无效的枚举值不会导致调用错误处理程序?
- php - 为什么我收到所有 Stripe Webhook 请求的错误 401?
- flutter - 容器性能对比 应用程序中的自定义画家可能大于 100 万个正方形
- android - Android 应用程序抛出 java.lang.NoSuchMethodError:调用 setStateDescription 方法时没有超级方法
- css - Vue 中未使用 vue.config.js 加载的全局样式表