У меня есть список, и я хочу удалить из него каждый элемент, который содержит другой элемент, кроме самого элемента.Удалить (из списка) все элементы, которые содержат другой элемент - Python
Например:
если мой список выглядит как это:
[ "AAA", "STACK_OVERFLOWAAAAAAA", "123AAAAA45678", "123456", "Foo", "DIR", " ITEM ", ........]
Теперь я хочу, чтобы код удалял все элементы, которые включают в себя« AAA ». После этого сканирования я хочу, чтобы код удалял все элементы, которые содержат в нем «123456» (если есть), и так далее.
Требуемая выход должен быть таким:
LST = [ "AAA", "123456", "Foo", "DIR", "ЭЛЕМЕНТ", ........]
Это мой код, и с какой-то причине он не работает ...
lst = ["AAA",
"STACK_OVERFLOWAAAAAAA",
"123AAAAA45678",
"123456",
"FOO",
"DIR",
"ITEM"
"AAAAA1234",
"VDFKGMGDFRAAAAAAAAAA",
"FNHBFDGBNDFGFHFGDUHGDRGJRAAAAAAAAA",
"6545154DDFEFRGAAAAAAA",
"123",
"ABC",
"abc"]
# The meaning of this variable is to indicate if the sub - item has already found in the list.
# If so, the code should remove all the next items which contains the current sub - item
AlreadyFound = False
# ItemToSearch = the sub - item which the program should search in the other list - items.
for ItemToSearch in lst:
# Start the loop and search the sub - item in every item which in the list.
for ItemToCheck in lst:
# If the current item contains the sub - item..
if (ItemToSearch in ItemToCheck):
# If the sub - item has already found in the list
if (AlreadyFound == True):
# Delete the current item from the list
del CurrItem
else:
AlreadyFound = True
print "\n".join(lst)
input()
Я рад получить некоторую помощь. Спасибо.
Немного запутался. Если вы удалите все с помощью «AAA», то для следующей итерации «STACK_OVERFLOWAAAAAAA» не будет существовать. Вы хотели сказать, что следующая итерация начнется с «123456»? – CodeMonkey
@CodeMonkey В любом случае конечный результат будет таким же. Все, что может быть удалено с помощью «STACK_OVERFLOWAAAAAAA», исчезнет, так как оно имеет «AAA» в качестве подмножества – StephenTG
@CodeMonkey. Вы правы, конечно. Я исправил свой вопрос .. :) – Aviv