dict initialization
MRAB
python at mrabarnett.plus.com
Tue Dec 22 19:24:11 EST 2009
mattia wrote:
> 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)
In this case it's probably more Pythonic to do it this way:
>>> d = defaultdict(int)
>>>> 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