无法将多个对象附加到列表类型dictionnary值

时间:2017-07-24 16:29:30

标签: python structure

我撞到墙上,慢慢陷入绝望。

我有以下结构(让我们称之为event_dict):

<App />

之类的东西(让我们称之为event_list):

extends Component

我试图在事件字典中推送事件列表中的数据。我正在使用event_list ['code']来确定哪个事件必须根据它的键附加到event_dict中。

这是我写的代码:

{
  'ABC123':[],
  'ABC234':[],
  'ABC444':[]
}

但是我收到了这个错误:[ {'code':ABC123, 'data':'some data' }, {'code':ABC234, 'data':'some data' } {'code':ABC234, 'data':'some data' } ]

有些东西我没有得到,但我看不出来。\

有更好的方法吗?我只是试图根据他们的for event in event_list : /* some processing here */ for motherEvent in event_dict : if motherEvent.keys()[0] == event['code']: event_dict[motherEvent.keys()[0]].append(event) /* also tried this : motherEvent.append(event) and got : list indices must be integers, not dict */ 在更高的结构中对一组dicts进行分组。

1 个答案:

答案 0 :(得分:2)

我修复了您提供的数据:

event_dict = {
    'ABC123':[],
    'ABC234':[],
    'ABC444':[]}

event_list = [
    {'code': 'ABC123', 'data':'some data' },
    {'code': 'ABC234', 'data':'some data' },
    {'code': 'ABC234', 'data':'some data' }]

您可以执行以下操作:

for el in event_list:
    event_dict[el['code']].append(el['data'])

您将获得以下结果:

{'ABC123': ['some data'], 'ABC444': [], 'ABC234': ['some data', 'some data']}

无需嵌套for循环。如果可以,尽量避免嵌套循环。