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 に答える