Я пытаюсь написать простую программу, которая удаляет все слова, содержащие цифры из полученной строки.Удаление слов, содержащих цифры из заданной строки
Вот моя текущая реализация:
import re
def checkio(text):
text = text.replace(",", " ").replace(".", " ") .replace("!", " ").replace("?", " ").lower()
counter = 0
words = text.split()
print words
for each in words:
if bool(re.search(r'\d', each)):
words.remove(each)
print words
checkio("1a4 4ad, d89dfsfaj.")
Однако, когда я выполнить эту программу, я получаю следующий результат:
['1a4', '4ad', 'd89dfsfaj']
['4ad']
Я не могу понять, почему '4ad'
печатается в вторая строка, поскольку она содержит цифры и должна быть удалена из списка. Есть идеи?
Добавить свой ожидаемый результат тоже –
Вы изменяете список во время итерации по нему. См. Этот вопрос, почему вы не должны этого делать: http://stackoverflow.com/questions/10812272/modifying-a-list-while-iterating-over-it-why-not – bgporter
Что именно вы пытаетесь выполнить? Каковы ваши ограничения и условия? –