Как мне удалить каждый элемент списка строк, который начинается со строки из этого списка?

#python

#python

Вопрос:

У меня есть список, который выглядит следующим образом:

   ["12", "123", "145", "178", "1264"]
  

Я хочу найти способ изменить этот список. Если одна из строк содержит уже существующую строку в списке, ее следует удалить. Для приведенного выше списка в нем есть элемент 12 , поэтому каждый элемент, начинающийся с 12 , должен быть удален из списка. Список должен выглядеть следующим образом после.

 ["12", "145", "178"]
  

У меня есть способ решить эту проблему с помощью циклов. Но я ищу более похожее на Python решение. Я читал о понимании списков и пытался использовать их для решения этой проблемы, но не смог найти решение.

Комментарии:

1. @dreygur Вы ищете решение с циклами или то, которое я пробовал с пониманием списка?

2. Код, который вы написали для понимания списка

3. @dreygur l2 = [x for x in l1 if x == x[:len(x)]] l1 — это список из примера.

Ответ №1:

Что-то вроде этого?

 l1 = ["12", "123", "145", "178", "1264"]
l2 = [a for a in l1 if a not in [n for n in l1 for length in range(len(n)) if n[:length] in l1]]