不能将多个对象附加到列表类型dictionary value

2024-04-26 17:40:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我撞到一堵墙,慢慢陷入绝望。你知道吗

我有以下结构(我们称之为事件dict):

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

类似这样的事情(我们称之为单事件列表):

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

我试图在我的事件目录中推送事件列表中的数据。我正在使用事件目录['code']根据事件目录的键来确定哪些事件必须附加到事件目录中。你知道吗

下面是我写的代码:

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 */

但我有个错误:list indices must be integers, not unicode

有些东西我不明白,但我看不出是什么东西。\

有更好的方法吗?我只是想根据dict的'code'在更高的结构中对dict列表进行分组。你知道吗


Tags: in目录event列表fordata事件code
1条回答
网友
1楼 · 发布于 2024-04-26 17:40:37

我修复了你提供的数据:

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循环。尽可能避免嵌套循环。你知道吗

相关问题 更多 >