Удалить слово из списка python

Опять стыдный вопрос, есть у меня список слов и нужно удалить их из списка по условию (не создавая новый список)

words="вот есть какая-то строка и мне нужно удалить слова где больше 4 уник символов"
words_sp=words.split()
x=0
for word in words_sp:
    for i in range(1, len(words_sp)+1):
        if len(set(word))>4:
            words_sp.pop(i)

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

Автор решения: Zhihar

если надо удалить один элемент:

arr = ['test', 'pest', 'vest', 'pest']

if 'pest' in arr:
    del arr[arr.index('pest')]

print(arr)

если все элементы:

arr = ['test', 'pest', 'vest', 'pest']

for i in range(len(arr) - 1, -1, -1):
    if arr[i] == 'pest':
        del arr[i]

print(arr)

ну условие "len(set(word))" – A4eVsmisle 2 минуты назад

for i in range(len(arr) - 1, -1, -1):
    if len(set(arr[i])) > 4:
        del arr[i]
→ Ссылка
Автор решения: passant

Ну вот как-то так, наверное:

sp=['фываывап','фыфыфыфы','ываав','авыпрорппв','фывфывфыв']
for sp_item in sp:
    if len(set(sp_item))>4:
        sp.remove(sp_item)

Результат: ['фыфыфыфы', 'ываав', 'фывфывфыв']

Все слова, где больше 4 уникальных символов - удалены. Как просили.

P.S.

 words="условие в том что-бы удалить все слова в которых больше 4 уникальных символа" 
sp=words.split(' ')

for sp_item in sp[::-1]:
    if len(set(sp_item))>4:
        sp.remove(sp_item)
sp
Out[12]: ['в', 'том', 'все', 'в', '4']

И точно - никаких копий.

→ Ссылка
Автор решения: CrazyElf

Ну ладно, раз можно всё по-новой, то вот:

words="условие в том что-бы удалить все слова в которых больше 4 уникальных символа" 
sp=words.split()

for word in sp.copy():
    if len(set(word)) > 4:
        sp.remove(word)

print(sp)

Вывод:

['в', 'том', 'все', 'в', '4']

Пояснение: нельзя итерироваться по списку и удалять элементы из него же - некоторые элементы списка тогда могут быть пропущены. Но можно сделать копию и итерироваться по ней и тогда всё будет ок.

Ну либо нужно идти по индексу задом наперёд, как сделано в других ответах.

→ Ссылка