0

我有一个列表,其中包含需要根据字母顺序排序的字典

[
    {
        'index': False,
        'definition': {
            'id': 1111111L,
            'value': u'Large Content'
        },
        'id': 1234567L,
        'name': {
            'id': 9999999999L,
            'value': u'INTRODUCTION'
        }
    },
    {
        'index': False,
        'definition': {
            'id': 22222222L,
            'value': u'Large Content'
        },
        'id': 2L,
        'name': {
            'id': 3333333333333l,
            'value': u'Abstract'
        }
    },
    {
        'index': False,
        'definition': {
            'id': 8888888888L,
            'value': u'Large Content'
        },
        'id': 1L,
        'name': {
            'id': 343434343434L,
            'value': u'Bulletin'
        }
    }
    {
        'index': False,
        'definition': {
            'id': 1113311L,
            'value': u'Large Content'
        },
        'id': 333434L,
        'name': {
            'id': 9999999999L,
            'value': u'<b>END</b>'
        }
    },
] 

我需要根据 ['name']['value'] 排序结果

Abstract
Bulletin
INTRODUCTION
END

但是当我这样做时,我首先得到大写字母

bg = []
for n in a:
   bg = sorted(a, key=lambda n: n["name"]["value"])

INTRODUCTION
END
Abstract
Bulletin
4

2 回答 2

6

要使排序不区分大小写,请将排序键中的所有内容都小写:

bg = sorted(a, key=lambda n: n["name"]["value"].lower())
于 2012-05-22T07:03:34.340 回答
2

因为大写字母在字典上更小。排序前删除字母大小写:

key=lambda n: n["name"]["value"].lower()
于 2012-05-22T07:04:13.527 回答