En Wed, 11 Apr 2007 15:57:56 -0300, IamIan <[EMAIL PROTECTED]> escribió:
> I'm writing a simple FTP log parser that sums file sizes as it runs. I > have a yearTotals dictionary with year keys and the monthTotals > dictionary as its values. The monthTotals dictionary has month keys > and file size values. The script works except the results are written > for all years, rather than just one year. I'm thinking there's an > error in the way I set my dictionaries up or reference them... > monthTotals = dict.fromkeys(months, 0) > # Nest monthTotals dictionary in yearTotals dictionary > yearTotals = {} > for year in years: > yearTotals.setdefault(year, monthTotals) All your years share the *same* monthTotals object. This is similar to this FAQ entry: <http://effbot.org/pyfaq/how-do-i-create-a-multidimensional-list.htm> You have to create a new dict for each year; replace the above code with: yearTotals = {} for year in years: yearTotals[year] = dict.fromkeys(months, 0) -- Gabriel Genellina -- http://mail.python.org/mailman/listinfo/python-list