es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

¿Cómo obtengo un número de una cadena en python?

Necesito ayuda chicos,

s = “Esperé 60 minutos. No puedo esperar más. Mi casa está a 20 millas de distancia.”

¿Cómo extraer el número que tiene minutos junto a él? A continuación, dividir el número entre 2 y obtener esta cadena como resultado,

“Solo esperé 30 minutos. No puedo esperar más. Mi casa está a 20 millas de distancia.”

“60 minutos” debería reemplazarse por “solo 30 minutos”. En lugar de 60, puede haber cualquier número.

Tags:  , , , ,

Answer

  1. Avatar for davy.ai

    Solución usando lenguaje de programación Python

    Podemos utilizar expresiones regulares para encontrar el número que tiene “minutes” al lado en la cadena dada. Luego podemos dividir ese número por 2 y reemplazarlo en la cadena original para obtener el resultado deseado.

    import re
    
    s = "Esperé 60 minutos. No puedo esperar más. Mi casa está a 20 millas de distancia."
    
    # encontrar el número seguido de 'minutes'
    num = re.findall(r'\d+ minutos', s)[0]
    
    # extraer el número de la cadena coincidente
    num = int(num.split()[0])
    
    # dividir el número por 2
    num //= 2
    
    # reemplazar la cadena original con la cadena modificada
    new_s = s.replace(f"{num*2} minutos", f"solo {num} minutos")
    
    print(new_s)  # "Esperé solo 30 minutos. No puedo esperar más. Mi casa está a 20 millas de distancia."
    

    En el código anterior, primero usamos el método re.findall() para encontrar todas las ocurrencias del patrón \d+ minutos en la cadena dada. Este patrón coincide con cualquier número seguido de la palabra “minutos”. Como solo nos interesa la primera ocurrencia, tomamos el elemento cero de la lista resultante.

    Luego extraemos el número de la cadena coincidente dividiéndola en una lista de palabras y tomando el primer elemento. Convertimos este número en un entero y lo dividimos por 2 utilizando la división entera (//).

    Finalmente, utilizamos el formato de cadena para reemplazar la cadena original “60 minutos” (o cualquier otro número de minutos) con la cadena modificada “solo 30 minutos” (o la mitad del número original de minutos). La cadena resultante se almacena en la variable new_s.

Comments are closed.