13

私は次のようなものを持っています

[
    {
        "key": { "subkey1":1, "subkey2":"a"  }
    },
    {
        "key": { "subkey1":10, "subkey2":"b" }
    },
    {
        "key": { "subkey1":5, "subkey2":"c" }
    }
]

そして、持っている必要があります:

[
    {
        "key": { "subkey1":10, "subkey2":"b" }
    },
    {
        "key": { "subkey1":5, "subkey2":"c" }
    },
    {
        "key": { "subkey1":1, "subkey2":"a" }
    }
]

どうもありがとう!

編集:サブキー1で並べ替えたいのですが、これは以前は明確ではありませんでした。

4

3 に答える 3

17

関数メソッドkeyにキーワードを使用します。sorted()sort()

yourdata.sort(key=lambda e: e['key']['subkey'], reverse=True)

デモ:

>>> yourdata = [{'key': {'subkey': 1}}, {'key': {'subkey': 10}}, {'key': {'subkey': 5}}]
>>> yourdata.sort(key=lambda e: e['key']['subkey'], reverse=True)
>>> yourdata
[{'key': {'subkey': 10}}, {'key': {'subkey': 5}}, {'key': {'subkey': 1}}]

これは、すべてのトップレベルの辞書にキーがあることを前提としています。キーは、キーkeyを持つ辞書であると想定されていsubkeyます。

詳細とコツについては、Pythonの並べ替えHOWTOを参照してください。

于 2012-11-05T18:19:23.880 に答える
2

リスト内のd['key']['subkey']すべての辞書の値で並べ替えたいと仮定すると、これを使用します。d

sorted(yourdata, key=lambda d: d.get('key', {}).get('subkey'), reverse=True)
于 2012-11-05T18:20:27.173 に答える
-1
sorted(yourdata, reverse=True)
于 2012-11-05T18:17:53.050 に答える