On 5 Jul., 18:07, infidel <[EMAIL PROTECTED]> wrote: > On Jul 5, 8:58 am, Hardy <[EMAIL PROTECTED]> wrote: > > > > > I experience a problem with append(). This is a part of my code: > > > for entity in temp: > > md['module']= entity.addr.get('module') > > md['id']=entity.addr.get('id') > > md['type']=entity.addr.get('type') > > #print md > > mbusentities.append(md) > > #print mbusentities > > > I want something like: [{'module': 'home', 'id': 123, 'type': 'core'}, > > {'module': 'work', 'id': 456, 'type': 'core'}] > > md is always correct, BUT:mbusentities is wrong. Length of > > mbusentities is same of temp, so it appended everything. BUT: > > mbusentities only shows the values of the last append: [{'module': > > 'work', 'id': 456, 'type': 'core'}, {'module': 'work', 'id': 456, > > 'type': 'core'}] > > > What's wrong? > > You're reusing the same "md" dictionary over and over, appending the > same object to the list each time. So what you have is a list of > references to the same dictionary. You need to set md = {} first > thing each iteration.
Thanks, that was my mistake, should take a break, getting code-blind :D -- http://mail.python.org/mailman/listinfo/python-list