Pythonのリスト内のdict内のリストに何かを追加する

私は次の構造を持つ dictslist
を作成しようとしています:

[
    {
        'id': '234nj233nkj2k4n52',
        'embedded_list': []
    },
    {
        'id': 'jb234bhj23423h4b4',
        'embedded_list': []
    },
    ...
]

最初は、このリストは空になります。

私ができることができることは次のとおりです:

  1. Check to see if a dict with a specific
    id exists in the list already
  2. If a dict containing that id exists, append
    something to it’s embedded_list
  3. If a dict containing that id does not exist,
    create a dict, append it to the list.

私は dict が次のようなものを使って dict の中の何かに基づいて
list に存在するかどうかをテストできることを認識しています。

extracted_dict = next((item for item in list if item['id'] == unique_id), None)

私は、 list 内の dict 内の list
に効率的に何かを追加する方法が不明です。私が(おそらく)見ていない明白な方法はありますか?

前もって感謝します。

ベストアンサー

あなたのデータ構造は、まず辞書の辞書でなければなりません:

{'234nj233nkj2k4n52': {'embedded_list': []},
 'jb234bhj23423h4b4': {'embedded_list': []},
    ... }

これにより、すべての操作を簡単に行うことができます。内部辞書に埋め込みリストのみが含まれている場合は、これをさらに簡略化して

{'234nj233nkj2k4n52': [],
 'jb234bhj23423h4b4': [],
    ... }

これで、必要なのは collections.defaultdict(list)です。

from collections import defaultdict
d = defaultdict(list)
d['234nj233nkj2k4n52'].append(whatever)

コメントする

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です