Split a List into Chunks in Python
Break a list into groups of 3 with slicing and range(): perfect for pages, batches and grids.
- Stepping through indexes with range(0, n, size)
- Slicing each chunk
- Handling the shorter last chunk
Slice every size items
Разбиение списка на небольшие группы (chunks) удобно для пакетной обработки данных, например чтобы отправлять письма группами по 100 человек или показывать данные постранично. Срезы (slicing) достают каждую очередную группу, не изменяя исходный список.
Главное
range(0, len(items), 3)gives the start of each chunk: 0, 3, 6.items[i:i + 3]takes up to three items from there.- The last chunk can be shorter; slicing never raises an error.
Когда это нужно?
- Освоить синтаксис и основные понятия Python на коротких и понятных примерах.
- Заложить прочную основу, прежде чем переходить к более сложным задачам.
- Запускать код прямо в браузере, не устанавливая Python на компьютер.
Пример кода
values = [1, 2, 3, 4, 5, 6, 7]
size = 3
# Slice one chunk at each size-aligned position.
chunks = [values[index:index + size] for index in range(0, len(values), size)]
print(chunks)
Результат выполнения
[[1, 2, 3], [4, 5, 6], [7]]
Разбор кода
Функция range(0, len(values), size) даёт начальные позиции 0, 3 и 6, отстоящие друг от друга ровно на размер группы. Для каждой позиции срез values[index:index + size] достаёт одну группу. В последней группе только один элемент, [7], и Python обрабатывает этот случай без ошибок.
Измените значения и запустите программу в онлайн-компиляторе Python CodeUtility без локальной установки Python.
Упражнения для практики
Попробуйте изменить код по подсказкам ниже. Если менять код и смотреть на результат, урок запомнится гораздо лучше, чем при простом чтении.
- Измените входные данные и предскажите результат до запуска.
- Добавьте проверку пустых или неверных данных.
- Вынесите обработку в отдельную функцию и проверьте её на нескольких наборах данных.
Попрактикуйтесь на задаче
Примените материал этого урока к реальной задаче. Каждая задача запускается в браузере, с мгновенными тестами и разбором от ИИ.
Все задачи