Рубрики

Python | Удалить последовательный кортеж в соответствии с ключом

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

Метод: Использование groupby() + itemgetter() + next()
Эта задача может быть выполнена с использованием комбинации этих функций. В этом мы преобразуем список в итератор для более быстрого доступа, используя next() , itemgetter() используется для получения индекса кортежа, для которого нам нужно выполнить удаление (в данном случае сначала), а groupby() выполняет окончательную группировку элементов.

# Python3 код для демонстрации работы
# Удалить последовательный кортеж в соответствии с ключом
# используя itemgetter () + next () + groupby ()

from operator import itemgetter

from itertools import groupby

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

test_list = [(4, 5), (4, 6), (7, 8), (7, 1), (7, 0), (8, 1)]

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

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

  
# Удалить последовательный кортеж в соответствии с ключом
# используя itemgetter () + next () + groupby ()

res = [next(group) for key, group in groupby(test_list, key = itemgetter(0))]

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

print("List after Consecutive tuple removal : " + str(res))

Выход :

The original list is : [(4, 5), (4, 6), (7, 8), (7, 1), (7, 0), (8, 1)]
List after Consecutive tuple removal : [(4, 5), (7, 8), (8, 1)]

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

Python | Удалить последовательный кортеж в соответствии с ключом

0.00 (0%) 0 votes