День добрый. Стоит задача разбивать список (каждый раз произвольной длинны) на отрезки по N символов в каждом. Изучал материалы и форумы, и мне удалось найти только обратное задаче решение, когда заведомо известна длина списка, и нужно поделить его на равные (или примерно равные части). Код по обратному решению приложил. Тогда как требуется чтобы код, так скажем, “откусывал” по очереди от начала списка куски длиной N символов и упаковал их во вложенные списки, остаток тоже упаковывался бы. Фактически необходимо так написать код, чтобы вместо переменной “chunks_quantity”, которая задает деление списка на определенное количество частей, была заменена просто числом, которое сообщало бы коду какой длинны в символах должны быть отрезаемые куски.
Подскажите, пожалуйста, в какую сторону мне копать, чтобы написать такой код. Благодарю!
def chunkify_approximately(items, chunks_quantity):
chunk_len = len(items) / chunks_quantity
rest_count = len(items) % chunks_quantity
chunks =
for i in range(chunks_quantity):
chunk = items
items = items
if rest_count and items:
chunk.append(items.pop(0))
rest_count -= 1
chunks.append(chunk)
return chunks
Получаем:
>>> chunkify_approximately(range(2), 3)
[, , ]
>>> chunkify_approximately(range(8), 3)
[, , ]
>>> chunkify_approximately(range(12), 5)
[, , , , ]