dict initialization
mattia
gervaz at gmail.com
Tue Dec 22 18:51:31 EST 2009
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
})
>>>
More information about the Python-list
mailing list