Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

118
Vistas
Comparar una cadena con varias subcadenas de otra cadena

¿Hay otra forma más sencilla de escribir código que básicamente verifique cada carácter de la cadena 'abcde'

 if input == 'a' or input == 'ab' or input == 'abc' or input == 'abcd' or input == 'abcde': return True
over 4 years ago · Santiago Trujillo
5 Respuestas
Responde la pregunta

0

Esto debería hacer lo mismo que lo que pones.

 return 'abcde'.startswith(input)
over 4 years ago · Santiago Trujillo Denunciar

0

Probablemente podrías intentar algo como esto:

 def your_function(): # Add as much chars that you want here chars = "abcde" # Assuming you are taking the user input from terminal user_input = input() # Loop over every substring from chars for i in range(len(chars) + 1): if chars[:i] == user_input: return True return False

¡Déjeme saber si esto ayuda!

over 4 years ago · Santiago Trujillo Denunciar

0

No nombre las variables input , ya que sombreará la función incorporada input() . Se considera una mala práctica hacer esto, y lo suficientemente fácil como para elegir otro nombre de variable.

Podría usar un conjunto para verificar si la entrada coincide con alguna de las subcadenas:

 lookups = {'a', 'ab', 'abc', 'abcd', 'abcde'} my_input = input() if my_input in lookups: return True

También podríamos generar este conjunto usando una comprensión de conjuntos:

 characters = 'abcde' lookups = {characters[:i] for i in range(1, len(characters) + 1)} my_input = input() if my_input in lookups: return True

Para grandes conjuntos de combinaciones, el beneficio de usar un conjunto sobre una lista es que obtiene búsquedas O(1) de tiempo constante para la búsqueda. Esto es mucho mejor que usar una lista, que le dará búsquedas lineales O(N) .

over 4 years ago · Santiago Trujillo Denunciar

0

Hay múltiples formas lindas de hacerlo. startwith es probablemente el más eficiente, pero estos también deberían funcionar:

usando lstrip :

 return 'abcde'.lstrip(input)!='abcde'

usando list comprehension :

 return any(['abcde'[:i+1] == input for i in range(len('abcde'))])

usando regex :

 pattern = re.compile('^'+input) return bool(pattern.match('abcde'))

o solo:

 return 'abcde'[:len(input)]==input
over 4 years ago · Santiago Trujillo Denunciar

0

Puedes probar esto:

 If input in ['a', 'ab', 'abc', 'abcd', 'abcde']: return True else: return False
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda