Efficient counting of results

Israel Brewster israel at ravnalaska.net
Thu Oct 19 14:28:35 EDT 2017


> On Oct 19, 2017, at 10:02 AM, Stefan Ram <ram at zedat.fu-berlin.de> wrote:
> 
> Israel Brewster <israel at ravnalaska.net> writes:
>> t10 = {'daily': 0, 'WTD': 0, 'MTD': 0, 'YTD': 0,}
>> increment the appropriate bin counts using a bunch of if statements.
> 
>  I can't really completely comprehend your requirements
>  specification, you might have perfectly described it all and
>  it's just too complicated for me to comprehend, but I just
>  would like to add that there are several ways to implement a
>  "two-dimensional" matrix. You can also imagine your
>  dictionary like this:
> 
> example =
> { 'd10': 0, 'd15': 0, 'd20': 0, 'd215': 0,
>  'w10': 0, 'w15': 0, 'w20': 0, 'w215': 0,
>  'm10': 0, 'm15': 0, 'm20': 0, 'm215': 0,
>  'y10': 0, 'y15': 0, 'y20': 0, 'y215': 0 }
> 
>  Then, when the categories are already in two variables, say,
>  »a« (»d«, »w«, »m«, or »y«) and »b« (»10«, »15«, »20«, or
>  »215«), you can address the appropriate bin as

Oh, I probably was a bit weak on the explanation somewhere. I'm still wrapping *my* head around some of the details. That's what makes it fun :-) If it helps, my data would look something like this:

[ (date, key, t1, t2), 
 (date, key, t1, t2)
.
.
]

Where the date and the key are what is used to determine what "on-time" is for the record, and thus which "late" bin to put it in. So if the date of the first record was today, t1 was on-time, and t2 was 5 minutes late, then I would need to increment ALL of the following (using your data structure from above):

d10, w10, m10, y10, d25, w25, m25 AND y25

Since this record counts not just for the current day, but also for week-to-date, month-to-date and year-to-date. Basically, as the time categories get larger, the percentage of the total records included in that date group also gets larger. The year-to-date group will include all records, grouped by lateness, the daily group will only include todays records.

Maybe that will help clear things up. Or not. :-)
> 
> example[ a + b ]+= 1

Not quite following the logic here. Sorry.

> 
>  . (And to not have to initialized the entries to zero,
>  class collections.defaultdict might come in handy.)

Yep, those are handy in many places. Thanks for the suggestion.

-----------------------------------------------
Israel Brewster
Systems Analyst II
Ravn Alaska
5245 Airport Industrial Rd
Fairbanks, AK 99709
(907) 450-7293
-----------------------------------------------

> 
> -- 
> https://mail.python.org/mailman/listinfo/python-list




More information about the Python-list mailing list