Вы можете обновить второй последний подсписок списка в существующем коде, добавив последний подсписок и затем удалив последний подсписок, только если последний подсписок не имеет размер n, размер чанка
def chunks(l, n):
li = [l[i:i+n] for i in range(0, len(l), n)]
#Add the second last sublist to the last sublist
#Only if the last sublist is not of size n
if len(li[-1]) != n:
li[-2] += li[-1]
#Remove the last element
li.pop(-1)
return li
Выход будет
print(chunks([1,2,3,4,5,6,7,8,9],3))
#[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
print(chunks([1,2,3,4,5,6,7,8,9,10],3))
#[[1, 2, 3], [4, 5, 6], [7, 8, 9, 10]]