Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

285
Views
¿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 answers
Answer question

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 Report

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!