Olá Marcio,
O seu código está correto, mas acontece um erro ao executar o código porque o padrão não é encontrado dentro de piada e então o findall
retorna uma lista vazia []
, e como a lista está vazia você não pode acessar o primeiro elemento em retorno[0]
porque não existe nenhum elemento.
Você pode fazer o teste deixando a última linha assim: print(retorno)
então você vai ver que o retorno do findall
para 'o que 15426325 é '
é uma lista vazia já que o padrão não foi encontrado.
Exemplo:
import re
frase = 'codigo=1234&codigo=1234'
piada = 'o que 15426325 é '
padrao = '[=][0-9]{1,4}'
lista = [frase, piada]
for i in lista:
retorno = re.findall(padrao, i)
print(retorno)
Resultado:
['=1234', '=1234']
[]
Espero ter ajudado, qualquer dúvida é só falar.