Replace in list

Asked

Viewed 799 times

0

I need some help with the code.

def corrigePalavra(str):
palavra = [str[-1:], str[-2:], str[-3:], str[-4:]]
result = str
palavra_modificada = False
for w in palavra:
    if result.count(w) > 1:
        result = result.replace(w * result.count(w), w, 1)
        palavra_modificada = True

return palavra_modificada, result

lista1 = ['programaramar ee legalal','python ee showow','linguagemem de programacaocao']
aux2 = []
cont_palavras_modificadas = -1
for i in lista1:
   aux1 = i.split()
   for j in aux1:
       palavra_modificada, x = corrigePalavra(j)
       aux2.append(x)
       if palavra_modificada:
           cont_palavras_modificadas += 1
   b = " ".join(aux2)
   print(cont_palavras_modificadas, b)

my way out:

 2 programar e legal
 4 programar e legal python e show
 6 programar e legal python e show linguagem de programacao

Saida Correta:

 3 programar e lagal
 2 python e show
 2 linguagem de programacao

That is, Replace numbers in the sentence and phrase after correction.

1 answer

2

just put the aux2 variable inside the cycle:

def corrigePalavra(str):
  palavra = [str[-1:], str[-2:], str[-3:], str[-4:]]
  result = str
  palavra_modificada = False
  for w in palavra:
      if result.count(w) > 1:
          result = result.replace(w * result.count(w), w, 1)
          palavra_modificada = True

  return palavra_modificada, result

lista1 = ['programaramar ee legalal','python ee showow','linguagemem de programacaocao']

cont_palavras_modificadas = -1
for i in lista1:
   aux1 = i.split()
   aux2 = []
   for j in aux1:
       palavra_modificada, x = corrigePalavra(j)
       aux2.append(x)
       if palavra_modificada:
           cont_palavras_modificadas += 1
   b = " ".join(aux2)
   print(cont_palavras_modificadas, b)
  • 1

    Thanks darKangel, thanks buddy

  • darkangel, Oce would have any idea how to count the number of occurrences, I’m not getting the account is giving different.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.