Удаление элемента в списке если он содержит только знаки Python

Час добрый
Подскажите пожалуйста как можно из списка:

list1 = ['<p>пример фраз</p>', '<p> !@>.)(**?& </p>' ]

убрать все элементы не несущие в себе текста, а только лишь знаки.

Понимаю примерно так:

for item in list:
    item = item[<p>:</p>] #обрезаем теги

    if  #проверка на наличие только лишь знаков

    item = f'<p>{item}</p>' #собираем обратно в тег 

Не знаю только как устроить данную проверку, чтобы после обработки ушли все элементы из list1 которые содержат только знаки.
А так же те элементы которые содержат только знаки и цифры ('@2131$35%^' - вроде такого)


Ответы (2 шт):

Автор решения: Александр Рассказчиков

Вы очень близки к корректному решению! Успехов в изучении программирования!

list1 = ['<p>пример фраз</p>', '<p> !@>.)(**?& </p>']
result = []

for item in list1:
    item = item[3:-3]  # обрезаем теги

    for symbol in item:  # Проходим по всем символам в строке
        if symbol.isalpha():  # Если текущий символ - буква
            break
    else:
        continue

    item = f'<p>{item}</p>'  # собираем обратно в тег
    result.append(item)  # добавляем элемент в результирующий список
list1 = result
→ Ссылка
Автор решения: SergFSM

такие штуки еще удобно делать с помощью модуля re, примерно так:

from re import fullmatch
from string import punctuation as pnt

list1 = ['<p>пример фраз!</p>', '<p> !@>.)9(**?& </p>', '<p>1 2 3 9</p>', '<p>1 2 test 3 4</p>']
res = [i for i in list1 if not fullmatch(fr'<p>[{pnt}\s0-9]*</p>',i)]

print(res)  # ['<p>пример фраз!</p>', '<p>1 2 test 3 4</p>']
→ Ссылка