Использование zip
и defaultdict
(и класса для чистоты):
из коллекции import defaultdict
hour_list = [1,2,2,2,5,5,7,5]
avg_occupancy = [0,5,9,5,13,24,56,23]
avg_absences = [0,4,5,7,8,6,8,3]
room_config = ['configa001', 'configa002', 'configa003', 'configa004',
'configa005', 'configa006', 'configa007', 'configa008']
class Tracker:
def __init__(self):
self.avg_occupancy = defaultdict(list)
self.avg_absences = defaultdict(list)
self.room_config = defaultdict(list)
def add(self, h, ao, aa, rc):
self.avg_occupancy[h].append(ao)
self.avg_absences[h].append(aa)
self.room_config[h].append(rc)
# Optional, of course
def __repr__(self):
import json
return json.dumps(vars(self), indent=4)
t = Tracker()
for row in zip(hour_list, avg_occupancy, avg_absences, room_config):
t.add(*row)
print(t)
Производит:
{
"avg_occupancy": {
"1": [0],
"2": [5, 9, 5],
"5": [13, 24, 23],
"7": [56]
},
"avg_absences": {
"1": [0],
"2": [4, 5, 7],
"5": [8, 6, 3],
"7": [8]
},
"room_config": {
"1": ["configa001"],
"2": ["configa002", "configa003", "configa004"],
"5": ["configa005", "configa006", "configa008"],
"7": ["configa007"]
}
}