Тебе тип нужна пагинация на каждые 500 элементов? Первую функцию не понимаю, когда происходит return - функция завершает свою работу и код ниже не обрабатывается. Для скипа текущей итерации цикла пишется:
for i in range(your_range):
if (your_if):
continue
#your actions
Если я правильно понял (а это трудно), ты хочешь искусственно проверить по счетчику прошло ли 500 и начать новую? Тогда код будет такой:
import math
your_data = [] # твой большой массив
new_data = [] # результирующий массив
paginate_by = 500 # по сколько в 1 массивчике
iters = math.ceil(len(your_data)/paginate_by) # Округление вверх 2.3 --> 3
for i in range(iters):
paginated_data = your_data[(paginate_by*i):(paginate_by*(i+1))] # срез массива, допустим i = 2, то элементы с индексом от 1000 до 1499 (включительно)
new_data.append(paginated_data)
Или короче + твоя функция:
import math
def grouper(values, n, fillvalue=None):
return [values[n*i:n*(i+1)] for i in range(math.ceil(len(values)/n))]
Результат с передачей массива из 10 '1', и пагинацией по 3:
data = ['1']*10
x = 3
print(grouper(data, x))
# Вывод: [['1', '1', '1'], ['1', '1', '1'], ['1', '1', '1'], ['1']]
# Или print(grouper(['1']*10, 3))