1
resposta

Como eu fiz

Galera, eu consegui extrair dessa forma. Se quiserem podem dar seus inputs aqui para gente debater! Agora vamos continuar para deixar esse codigo mais clean :3

url = "bytebank.com/cambio?quantidade=100&moedaOrigem=real&moedaDestino=dolar"

lista_parametros = ['quantidade', 'moedaOrigem', 'moedaDestino']
pontos_ecomercial = []


for i, letra in enumerate(list(url)):
    if letra == '&':
        pontos_ecomercial.append(i)

for i in range(len(pontos_ecomercial)+1):
    if i < len(pontos_ecomercial):
        parametro = url.find(lista_parametros[i])
        ecomercial = pontos_ecomercial[i]
        print(url[parametro:ecomercial])
    else:
        parametro = url.find(lista_parametros[i])
        print(url[parametro:])

1 resposta

Olá Yuri, tudo bem contigo?

Aqui está o código com algumas melhorias para deixá-lo mais limpo:

url = "bytebank.com/cambio?quantidade=100&moedaOrigem=real&moedaDestino=dolar"

lista_parametros = ['quantidade', 'moedaOrigem', 'moedaDestino']
pontos_ecomercial = []

for i, letra in enumerate(url):
    if letra == '&':
        pontos_ecomercial.append(i)

for i in range(len(pontos_ecomercial) + 1):
    parametro = url.find(lista_parametros[i])
    if i < len(pontos_ecomercial):
        ecomercial = pontos_ecomercial[i]
        print(url[parametro:ecomercial])
    else:
        print(url[parametro:])

Aqui estão as principais alterações realizadas:

  1. Removi a conversão da URL para uma lista, pois você pode iterar diretamente sobre a string.
  2. Redefini a condição i < len(pontos_ecomercial) dentro do loop para evitar repetições.
  3. Movemos a variável parametro para fora do bloco condicional, pois ela é comum em ambos os casos.
  4. Simplifiquei a lógica de impressão das substrings, eliminando a necessidade do else e utilizando o slicing diretamente no print.

Essas são apenas algumas sugestões para tornar o código mais limpo. Dependendo do contexto e dos requisitos do seu projeto, você pode fazer mais melhorias ou otimizações.

Em suma seria isso, abraços e bons estudos.