problem with dictionaries within lists

Grant Hallam gupsmail at ihatespam.shaw.ca
Wed Sep 25 16:51:48 CEST 2002


I reset the dict keys to blank strings and it works now.  
added the following after webdatabaselist(dict.append)
dict = {'Name': '','Location':'','Transit':'','Position':'','Technical_Knowledge':'','Like_Site':'','Resolve_Tech_Issues':'','Easy_Navigation':'','Publish_Comments':'','Answered_No':'','Find_Support':'','Find_Support_Other':'','Find_Information':'','Which_LEOnet_Site':'','Find_Information_Other':'','Visit_Again':'','Visited_Old_Site':'','Time_Spent':'','Comments':'','B1':''}
and it works ok now.  Seems like a bit of a hack, have to think of a
better way later.

On Wed, 25 Sep 2002 02:11:14 -0700, Alex Martelli wrote:

> Grant Hallam wrote:
>         ...
>>  However, the list seems to get populated with the same dictionary
>         ...
>> webdatabaselist.append(dict)
> 
> Of course -- you ARE appending the same dict over ands over (AFAICT --
> you're probably using tabs for indentation, making your code hard to
> comprehend for those who read news with KDE's KNode [or MS's OE] as tabs
> don't show there... use spaces, NOT tabs...).
> 
> Anyway, you probably need something like:
> 
> webdatabaselist.append(dict.copy())
> dict = {}
> 
> either might suffice, but generally you'll need to copy the current dict
> AND make dict empty for the next leg of the loop, if I get the general
> drift.  If you do rebind name dict to {} for the next leg, then you
> don't need the call to the copy method.
> 
> 
> Alex



More information about the Python-list mailing list