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