Добрый день всем. Я думал о создании кода на python, который позволил бы мне фильтровать определенные полученные фразы, и чтобы я мог писать слова, которые неявно присутствуют в этих фразах, и эти фразы не отображаются на экране, а только те фразы, которые не содержат этих слов. Например:
У меня есть следующие фразы:
TEST: NONE To test SGI:TATA-142 and TATA-453.
TEST: TATA-432 Other test. In TATA-343 too.
TEST:NONE New test. First TATA-12
modelos incompletos.
archivos estaticos creados.
, и я хочу фильтровать по «NONE», «too» и «models», то есть я должен отображать только:
archivos estáticos creados.
Для этого я подумал о методе, который получает эти фразы и что слова, которые я хочу отфильтровать, хранятся в списке:
def clean(frases):
lista = ["NONE", "too", "modelos"]
for value in lista:
if value in frases:
pass
else:
return frases
Это смутное представление о том, кто я Это происходило в некоторых попытках, так как я пытался, единственное, чего я добиваюсь, это то, что я не возвращаю предложение с последним словом, сохраненным в списке, то есть слово моделирует «модели», визуализирующие:
TEST: NONE To test SGI:TATA-142 and TATA-453.
TEST: TATA-432 Other test. In TATA-343 too.
TEST:NONE New test. First TATA-12
archivos estaticos creados.
Я также пытался использовать метод find()
python, но во всех моих эссе я получал один и тот же результат, когда пытался выполнить этот процесс для более чем одного слова. Я хотел бы знать, знает ли кто-нибудь из вас какую-либо форму или слово, зарезервированное в python, которое может помочь мне с моей домашней работой. Большое спасибо.
Завись немного cГіmo считай хранившимися фразы, предполагая, что у тебя были они в списке podrГ, - чтобы стоить тебе следующее, как я это поместил, если бы у тебя это был другой формы tendrГ-туз, который был должен приспосабливать это немного.
ты Можешь использовать not in
, который делает противоположность, что in
и all()
, asГ - когда все 'не estГ©n' они incluirГЎ в твоем результате:
frases = ['TEST: NONE To test SGI:TATA-142 and TATA-453.',
'TEST: TATA-432 Other test. In TATA-343 too.',
'TEST:NONE New test. First TATA-12',
'modelos incompletos.',
'archivos estaticos creados.']
lista = ["NONE", "too", "modelos"]
def clean(frases):
return [frase for frase in frases if all(map(lambda x:x not in frase, lista))]
print(clean(frases))
Это ты devolverГ - в только ['archivos estaticos creados.']
У тебя есть несколько ошибок lГіgicos в планировании, по двум причинам:
frases
, который является тем же списком, который ты получил. Так что никогда eliminarГЎ ничто (я не объясняюсь cГіmo не состоит в том, что ты говоришь, что в результате eliminГі фраза) , Чтобы смотреть, слово estГЎ в какой-то из фраз помещаешь ли ты: if value in frases
но это не funcionarГЎ как ожидание. Это sГіlo смотрит, если value
(что serГЎ например слово "NONE"
- один из элементов списка frases
, но не это serГЎ, так как этот список содержит длинные цепи. Ни одной из этих цепей нет "NONE"
, хотя он может содержать "NONE"
.
Окончательно, что tendrГ-эксперт, который нужно повторять для каждой фразы и взгляда, если слово estГЎ в этой фразе, с чем-то как:
for value in lista:
for frase in frases:
if value in frase:
...
то, что ты должен делать в случае, если он будет выполнен, состоит в том, чтобы отпускать тебе эту фразу (hacГ-схвати это хорошо), но в случае, если не будет выполнен дебет aГ±adir эта фраза в другой список, чем contendrГЎ результат, который было нужно возвращать. И не возвращать ничего aГєn. return
estarГЎ вне этих циклов.
В действительности предыдущее также serГ - в правильный, так как ВїquГ© не перемещает, если слово "NONE" estГЎ во фразе, но слове "too" не estГЎ? Так как мы повторяем из-за values
, если мы находим, что один из values
не estГЎ во фразе, мы считаем ее хорошей. Но mГЎs вперед podrГ-хозяева находить (в другой iteraciГіn) что другое слово sГ - что estГЎ, из-за того, что не tendrГ-хозяева, чем счесть ее хорошей раньше.
soluciГіn в это состоит, во-первых, в том, чтобы вкладывать циклы. Повторять раньше из-за фраз. И для каждой фразы решать, сохраняем ли мы ее или не смотря, какая-то появляется ли из слов в ней. SГіlo, если ни одна не появляется, будь должен сохраняться.
А именно, беря ту же идею, что pretendГ-схвати выражать в тебе cГіdigo, но исправляя эти проблемы, serГ - в asГ-:
def clean(frases):
lista = ["NONE", "too", "modelos"]
resultado = []
for frase in frases:
conservar = True
for palabra in lista:
if palabra in frase:
conservar = False
if conservar:
resultado.append(frase)
return resultado
Предыдущее serГ - в одну versiГіn "простой", что использует только циклы и caracterГ-sticas хорошо известные языка. Используя programaciГіn функционально смоги быть упрощенным много, как он показывает ответ AdriГЎn Санс.