come suggerisce il titolo, ho sviluppato una funzione che, data una lista ascendente ORDINATO, si mantiene solo gli elementi che hanno una distanza di almeno k periodi ma lo fa modificando dinamicamente l'iteratore durante il ciclo. Mi è stato detto che questo deve essere evitato come la peste e, anche se non sono pienamente convinto del perché questa sia una cattiva idea, confido in coloro a cui mi sono appoggiato per la formazione e quindi per chiedere consigli su come evitare tale pratica Il codice è il seguente:mantenendo solo elementi di una lista ad una certa distanza di almeno - cambiare iteratore mentre loop - Python
import pandas as pd
from datetime import days
a = pd.Series(range(0,25,1), index=pd.date_range('2011-1-1',periods=25))
store_before_cleanse = a.index
def funz(x,k):
i = 0
while i < len(x)-1:
if (x[i+1]-x[i]).days < k:
x = x[:i+1] + x[i+2:]
i = i-1
i = i + 1
return x
print(funz(store_before_cleanse,10))
cosa si può fare per evitarlo? p.s .: non preoccuparti di soluzioni in cui l'elenco non è ordinato. la lista che verrà data sarà sempre ordinata in modo crescente.
Mi inchino prima della risposta. Così semplice ed elegante. grazie mille! – Asher11