首页 > 解决方案 > 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'
                },
            ]
        },
    ]

标签: pythonpython-3.x

解决方案


假设您要按name列表中每个项目的第一级中的 排序,下面的单行将对其进行排序。

a_list.sort(key=lambda x: x['name'])

推荐阅读