在Python的列表中将某些内容添加到dict中的列表中

时间:2011-11-13 13:08:17

标签: python list dictionary

我正在尝试创建一个list dicts,其结构如下:

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

最初,此列表将为空。

我需要做的是:

  1. 检查列表中是否存在具有特定dict的{​​{1}}
  2. 如果存在包含id的字典,请在其id
  3. 附加内容
  4. 如果包含embedded_list的词典不存在,请创建一个词典,将其附加到列表中。
  5. 我知道能够根据id内部的内容使用以下内容测试dict中是否存在list

    dict

    我不确定如何有效地在extracted_dict = next((item for item in list if item['id'] == unique_id), None) listdict附加某些内容。是否有一种我没有看到的明显方式(可能)?

    提前谢谢。

2 个答案:

答案 0 :(得分:4)

您的数据结构首先应该是字典词典:

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

这将使您所需的所有操作更加轻松。如果内部词典仅包含嵌入列表,则可以进一步简化为

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

现在,您只需要collections.defaultdict(list)

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

答案 1 :(得分:1)

或只是一个简单的dic

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