Search code examples
python-2.7django-1.4

Count unique dates from a multidimensional list


I am querying a database for Leads. Leads have a "lead generated date" and a possible "closed" date.

What I would like to do is get a month by month total for leads generated/leads closed per month in the format [MM/YYYY, leads generated, leads closed] for Google Visualization API.

I have my query logic set and currently have a a result similar to:

[
["09/2011","09/2011"],
["09/2011","10/2011"],
["10/2011","12/2011"],
...
]

I am stuck trying to come up with an efficient way parse this and get the result of:

[
["09/2011", 2, 1],
["10/2011", 1, 1],
["12/2011", 0, 1]
]

Any help would be appreciated!


Solution

  • It's not that beautiful, but this should work:

    from collections import defaultdict
    
    d1 = defaultdict(int)
    d2 = defaultdict(int)
    
    data = [["09/2011","09/2011"],["09/2011","10/2011"],["10/2011","12/2011"]]
    
    for d in data:
        d1[d[0]] += 1
        d2[d[1]] += 1
    
    out = []
    for key in set(d1.keys()) | set(d2.keys()):
        out.append([key, d1.get(key, 0), d2.get(key, 0)])