<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def group_by_month_per_hour(self):
 """Return a dictionary of this collection's values grouped by each month per hour. Key values are tuples of 2 integers: The first represents the month of the year between 1-12. The first represents the hour of the day between 0-24. (eg. (12, 23) for December at 11 PM) """

        data_by_month_per_hour = OrderedDict()
        for m in xrange(1, 13):
            for h in xrange(0, 24):
                data_by_month_per_hour[(m, h)] = []
        for v, dt in zip(self.values, self.datetimes):
            data_by_month_per_hour[(dt.month, dt.hour)].append(v)
        return data_by_month_per_hour