list.append not working?

Wildemar Wildenburger wildemar at freakmail.de
Thu Jul 5 18:00:40 EDT 2007


Abhishek Jain wrote:
> with every iteration your previous values are overwritten ('md' is a 
> dictionary) so thats why your are observing this ouput..
>
> check  if the following patch solves your problem
>
> 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)
>             md = {}
>             #print mbusentities
>
>
> Regards
> Abhi
This will work, but may I suggest putting the md = {} line at the 
*beginning* of the loop?
I find seeing it at the end HIGHLY confusing. Declaring it in the 
beginning makes sense, because you declare/initialize, then use it. But 
using and *then* initializing it for the next iteration is kind of 
quirky, because it breaks the logical encapsulation I would like to see 
in *one* loop iteration.

/W



More information about the Python-list mailing list