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

279
Vistas
¿Cuál es la forma más pitónica de implementar una condición de caso de cambio basado en rango numérico?

Quiero entender la forma más pitónica de implementar un caso de cambio de base de rango numérico.

Considere la siguiente función como un ejemplo para proporcionar sugerencias.

 def bucket(input_number): if input_number <= 29: bucket = 1 elif 29 < input_number <= 59: bucket = 2 elif 59 < input_number <= 89: bucket = 3 elif 89 < input_number <= 119: bucket = 4 elif 119 < input_number <= 149: bucket = 5 elif 149 < input_number <= 179: bucket = 6 elif 179 < input_number <= 209: bucket = 7 elif 209 < input_number <= 239: bucket = 8 elif 239 < input_number <= 269: bucket = 9 elif 269 < input_number <= 299: bucket = 10 elif 299 < input_number <= 329: bucket = 11 elif 329 < input_number <= 359: bucket = 12 elif input_number > 359: bucket = 13 else: bucket = 0 return bucket

Tenga en cuenta:

  • No asuma que se puede construir una ecuación o lógica para los rangos.
over 4 years ago · Santiago Trujillo
2 Respuestas
Responde la pregunta

0

Puedes dividir por 30 como a continuación:

 def bucket(input_number): if input_number > 359: return 13 elif input_number < 0: return 0 return input_number // 30 + 1
over 4 years ago · Santiago Trujillo Denunciar

0

No sé si es "pitónico" o efectivo en tiempo de ejecución, pero parece una forma más agradable:

 bucket_dict = {29: 2, 59: 3, 89: 4, 119: 5, ...} def bucket(input_number): answer = 1 # number to return if input_number is smaller than the lowest value for k in sorted(bucket_dict.keys()): if input_number <= k: return answer answer = bucket_dict[k] return 13 # number to return if input_number is larger than the highest value
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