#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]]