Il Tue, 22 Dec 2009 23:09:04 +0100, Peter Otten ha scritto: > mattia wrote: > >> Is there a function to initialize a dictionary? Right now I'm using: >> d = {x+1:[] for x in range(50)} >> Is there any better solution? > > There is a dictionary variant that you don't have to initialize: > > from collections import defaultdict > d = defaultdict(list) > > Peter
...and it's also the only way to do something like: >>> def zero(): ... return 0 ... >>> d = defaultdict(zero) >>> s = ['one', 'two', 'three', 'four', 'two', 'two', 'one'] >>> for x in s: ... d[x] += 1 ... >>> d defaultdict(<function zero at 0x00BA01E0>, {'four': 1, 'three': 1, 'two': 3, 'one': 2 }) >>> -- http://mail.python.org/mailman/listinfo/python-list