Help with Dictionaries and Classes requested please.
Alex Martelli
aleax at mac.com
Sat Aug 11 01:10:57 EDT 2007
Sion Arrowsmith <siona at chiark.greenend.org.uk> wrote:
> special_dragonfly <Dominic at PLEASEASK.co.uk> wrote:
> > if key in FieldsDictionary:
> > FieldsDictionary[key].append(FieldClass(*line.split(",")))
> > else:
> > FieldsDictionary[key]=[FieldClass(*line.split(","))]
>
> These four lines can be replaced by:
>
> FieldsDictionary.setdefault(key, []).append(FieldClass(*line.split(",")))
Even better might be to let FieldsDictionary be an instance of
collections.defaultdict(list) [[assuming Python 2.5 is in use]], in
which case the simpler
FieldsDictionary[key].append(FieldClass(*line.split(",")))
will Just Work. setdefault was a valiant attempt at fixing this
problem, but defaultdict is better.
Alex
More information about the Python-list
mailing list