У вас есть:
>>> header= ["math","science","english"]
>>> score = [80,95,75,81,22,90,20,55,99]
Первая идея - использовать zip
, но zip
останавливается, когда исчерпан самый короткий из двух списков:
>>> dict(zip(header, score))
{'math': 80, 'science': 95, 'english': 75}
Вы необходимо использовать второй zip
, чтобы сгруппировать оценки:
>>> n = len(header)
>>> L = list(zip(*(score[i*n:(i+1)*n] for i in range(n))))
>>> L
[(80, 81, 20), (95, 22, 55), (75, 90, 99)]
, а затем zip
header
и сгруппированные оценки:
>>> dict(zip(header, L))
{'math': (80, 81, 20), 'science': (95, 22, 55), 'english': (75, 90, 99)}