dict generator question

pruebauno at latinmail.com pruebauno at latinmail.com
Thu Sep 18 17:39:02 CEST 2008


On Sep 18, 10:54 am, "Simon Mullis" <si... at mullis.co.uk> wrote:
> Hi,
>
> Let's say I have an arbitrary list of minor software versions of an
> imaginary software product:
>
> l = [ "1.1.1.1", "1.2.2.2", "1.2.2.3", "1.3.1.2", "1.3.4.5"]
>
> I'd like to create a dict with major_version : count.
>
> (So, in this case:
>
> dict_of_counts = { "1.1" : "1",
>                    "1.2" : "2",
>                    "1.3" : "2" }
>
> Something like:
>
> dict_of_counts = dict([(v[0:3], "count") for v in l])
>
> I can't seem to figure out how to get "count", as I cannot do x += 1
> or x++ as x may or may not yet exist, and I haven't found a way to
> create default values.
>
> I'm most probably not thinking pythonically enough... (I know I could
> do this pretty easily with a couple more lines, but I'd like to
> understand if there's a way to use a dict generator for this).
>
> Thanks in advance
>
> SM
>
> --
> Simon Mullis

3 lines:

from collections import defaultdict
dd=defaultdict(int)
for x in l: dd[x[0:3]]+=1



More information about the Python-list mailing list