How about this?
Input:
a = [1,2,3,4,5,6,7,8,9,10]
keys = [1984, 1985, 1986, 1987]
n = 5
Code:
my_dict = {}
for i in range(len(a)//n):
key = str(keys[i]) if i < len(keys) else "after " + str(keys[-1])
my_dict[key] = a[i*n: (i+1)*n]
print(my_dict)
Output:
{'1984': [1, 2, 3, 4, 5], '1985': [6, 7, 8, 9, 10]}
Depending on your use case you could also do something like this:
# Input
a = range(22)
keys = [1984, 1985, 1986] # maybe replace it with range(1984, 2000)
n = 5
# Code
b = a
my_dict = {}
for i in range(min(len(keys), len(a)//n)):
key = keys[min(i, len(keys)-1)]
my_dict[key] = b[:n]
b = b[n:]
my_dict['later'] = b
print(my_dict)
# Output
{
1984: [0, 1, 2, 3, 4],
1985: [5, 6, 7, 8, 9],
1986: [10, 11, 12, 13, 14],
'later': [15, 16, 17, 18, 19, 20, 21]
}