Рубрики

Python | Объединить перекрывающуюся часть списков

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

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

# Python3 код для демонстрации работы
# Объединить перекрывающиеся части списка
# используя генератор + следующий () + список нарезки

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

test_list1 = [4, 5, 7, 9, 10, 11]

test_list2 = [10, 11, 16, 17]

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

print("The original list 1 is : " + str(test_list1))

print("The original list 2 is : " + str(test_list2))

  
# Объединить перекрывающиеся части списка
# используя генератор + следующий () + список нарезки

temp = (i for i in range(len(test_list2), 0, -1) if test_list2[:i] == test_list1[-i:])

temp2 = next(temp, 0)

res = test_list1 + test_list2[temp2 : ]

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

print("List after overlapping merge is : " + str(res))

Выход :

The original list 1 is : [4, 5, 7, 9, 10, 11]
The original list 2 is : [10, 11, 16, 17]
List after overlapping merge is : [4, 5, 7, 9, 10, 11, 16, 17]

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

Python | Объединить перекрывающуюся часть списков

0.00 (0%) 0 votes