Рубрики

Python | Группировать элементы по позициям останова в списке

Много раз у нас возникали проблемы, связанные с группировкой Python. Иногда у нас может возникнуть конкретная проблема, в которой нам нужно разделить и сгруппировать список элементов N по отсутствующим элементам. Давайте обсудим, как эту задачу можно выполнить.

Метод: Использование itemgetter() + map() + lambda() + groupby()
Эта задача может быть выполнена с использованием комбинации вышеперечисленных функций, в которой мы можем сгруппировать элементы в разрывы, рассчитанные с использованием лямбда-функции, путем нахождения разницы между индексом и значением в списке. Map map() используется, чтобы объединить логику и элементный элемент, гарантирующий, что группировка имеет значение. Работает только с Python2.

# Python-код для демонстрации работы
# Группировать элементы по позициям разрыва в списке
# используя itemgetter () + map () + lambda () + groupby ()

from itertools import groupby

from operator import itemgetter

  
# инициализировать список

test_list = [1, 2, 4, 5, 6, 8, 9, 11]

  
# печать оригинального списка

print("The original list is : " + str(test_list))

  
# Группировать элементы по позициям разрыва в списке
# используя itemgetter () + map () + lambda () + groupby ()

res = list(map(itemgetter(1), j) for i, j in 

           groupby(enumerate(test_list), lambda (x, y) : x - y))

  
# результат печати

print("Grouping of elements at breaks : " + str(res))

Выход :

The original list is : [1, 2, 4, 5, 6, 8, 9, 11]
Grouping of elements at breaks : [[1, 2], [4, 5, 6], [8, 9], [11]]

Рекомендуемые посты:

Python | Группировать элементы по позициям останова в списке

0.00 (0%) 0 votes