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. -- http://mail.python.org/mailman/listinfo/python-list