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

177
Views
Cortar la lista de Python con intervalos inconsistentes

Tengo una lista de precios de acciones de una empresa. Ahora quiero dividir la lista con múltiples intervalos. almacenaremos el precio como: Los primeros 2 elementos, luego los siguientes 3 elementos, luego 2 elementos, y así sucesivamente.

 meta_stocks = [10, 9, 11, 15, 19, 22, 25, 11, 15, 17]

Producción

 meta_stocks = [[10, 9],[11, 15, 19],[22, 25],[ 11, 15, 17]]

Puedo dividir la lista con 5 elementos cada uno, pero no puedo dividirla más

 >>> [meta_stocks[i:i+interval2] for i in range(0, len(meta_stocks), interval2)] >>> [[10, 9, 11, 15, 19], [22, 25, 11, 15, 17]]
over 4 years ago · Santiago Trujillo
3 answers
Answer question

0

Puede usar una lista de comprensión con la ayuda de itertools.cycle :

 meta_stocks = [10, 9, 11, 15, 19, 22, 25, 11, 15, 17] from itertools import cycle start = 0 l = [2,3] c = cycle(l) [meta_stocks[start:(start:=start+next(c))] for i in range(len(l)*len(meta_stocks)//sum(l))]

Producción:

 [[10, 9], [11, 15, 19], [22, 25], [11, 15, 17]]
over 4 years ago · Santiago Trujillo Report

0

Podría hacerlo así sin la ayuda de importaciones adicionales:

 meta_stocks = [10, 9, 11, 15, 19, 22, 25, 11, 15, 17] meta_stocks_out = [] offset = 0 interval = 2 while offset + interval <= len(meta_stocks): meta_stocks_out.append(meta_stocks[offset:offset+interval]) offset += interval interval = 2 if interval == 3 else 3 print(meta_stocks_out)
over 4 years ago · Santiago Trujillo Report

0

Algunas itertools al rescate:

 from itertools import islice, cycle, takewhile i = iter(meta_stocks) intervals = [2, 3] [*takewhile(lambda _: _, ([*islice(i, n)] for n in cycle(intervals)))] # [[10, 9], [11, 15, 19], [22, 25], [11, 15, 17]]
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!