PYTHON СПИСОК РАЗДЕЛИТЬ НА ЧАСТИ

В Python есть несколько способов разбивки списка на части. Расмотрим два из них.

Первый способ - использование срезов:

l = [1, 2, 3, 4, 5, 6, 7, 8] size = 3 result = [l[i:i+size] for i in range(0, len(l), size)] print(result)

В этом примере мы задаём список чисел l и размер частей size. Затем мы создаем новый список, используя генератор списка и для каждой i-ой позиции в исходном списке l, помещаем соответствующий срез l[i:i+size] в новый список. Функция range(start, stop[, step]) возвращает последовательность чисел, начиная со значения start, заканчивая на stop-1, в шаге step (если опущен, то с шагом 1).

Второй способ - использование функции itertools:

from itertools import zip_longest def grouper(n, iterable, fillvalue=None): args = [iter(iterable)] * n return zip_longest(*args, fillvalue=fillvalue) l = [1, 2, 3, 4, 5, 6, 7, 8] size = 3 result = list(grouper(size, l)) print(result)

В этом примере мы создаем функцию grouper, используя функцию zip_longest из модуля itertools. Функция zip_longest(*iterables, fillvalue=None) соединяет элементы из нескольких итерируемых объектов, создавая кортежи, если хотя бы один объект исчерпан - дополняет его значением по умолчанию. Выражение [iter(iterable)] * n создает из одного итерируемого объекта список, содержащий n одинаковых итераторов, которые затем передаются в функцию zip_longest в качестве аргументов. Результат возвращается в виде итератора. Чтобы получить список, мы преобразуем результат функции в список при помощи функции list.

9 Cтроки и операции над ними Python

#13. Списки - операторы и функции работы с ними - Python для начинающих

Python с нуля - Списки в Python - Методы списков, сортировка списка, срезы списков в Python

53 Сортировка коллекций в Python. Метод sort и функция sorted

12 Списки и операции над ними Python

Реальная задача из собеседования. Почему я до сих пор Junior программист в Python. Эпизод 4

Метод split и метод join Python

Python с нуля. Урок 5 - Списки

Как разбить список на части?

BLGPG-4F6604709D8B-24-11-23-23

Новые материалы: