Часто в программировании возникает задача разбить список на равные части. Например, есть список из 10 элементов, и его нужно разбить на части по 2 элемента. В итоге должно получиться 5 подсписков по 2 элемента в каждом.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
В Python для этого можно использовать различные подходы. Варианты реализации могут варьироваться в зависимости от конкретных требований и условий задачи. Представлены некоторые из них ниже.
Освойте Python на курсе от Skypro. Вас ждут 400 часов обучения и практики (достаточно десяти часов в неделю), подготовка проектов для портфолио, индивидуальная проверка домашних заданий и помощь опытных наставников. Получится, даже если у вас нет опыта в IT.
Использование цикла for
Один из базовых способов — использование цикла for и встроенной функции range. Сначала задается размер частей, на которые будет разбиваться список, затем с помощью цикла формируются подсписки нужного размера.
chunk_size = 2 chunks = [numbers[i:i + chunk_size] for i in range(0, len(numbers), chunk_size)]
Использование генератора
Можно использовать генераторы, которые позволяют создавать объекты, по которым можно итерироваться, без необходимости сразу создавать все элементы.
def chunks(lst, chunk_size): for i in range(0, len(lst), chunk_size): yield lst[i:i + chunk_size] chunks_list = list(chunks(numbers, chunk_size))
На курсе Skypro «Python-разработчик» освоите основные инструменты программирования, получите опыт на реальных проектах и сможете стартовать в профессии уверенным новичком. Преподаватели — практикующие программисты с большим опытом, а в центре карьеры помогут составить цепляющее резюме и подготовиться к собеседованию.
Использование библиотеки Numpy
Если в проекте используется библиотека Numpy, то можно использовать функцию array_split, которая разбивает массив на подмассивы.
import numpy as np chunks = np.array_split(numbers, len(numbers) // chunk_size)
Все эти методы позволяют разбить список на равные части, но выбор конкретного метода зависит от конкретной задачи и условий.
Добавить комментарий