J'ai essayé plusieurs heures sur plusieurs jours pour trouver une solution, mais je ne peux pas réussir - je ne sais pas quoi, mais il me manque quelque chose ...Comment récupérer des valeurs de la liste en les comparant aux valeurs suivantes et précédentes?
Besoin d'aide ou de suggestions: -D
Voici ce que je veux faire:
J'ai deux listes:
v = [1, 3, 25, 67, 69, 72, 85, 120, 125, 130]
d = [2, 22, 42, 2, 3, 13, 35, 5, 5]
v est un ensemble de valeurs et d est un calcul de ses intervalles
Je voudrais filtrer v afin de récupérer uniquement les vaues qui sont éloignés de moins de, disons, 5.
qui amélioreraient vf (v filtré):
vf = [1, 3, 67, 69, 72, 120, 125, 130]
Qu'est-ce que je avons réussi à faire jusqu'à présent:
for i in range(len(v)-1) :
... if v[i] - v[i-1] <= 5 or v[i+1] - v[i] <= 5 :
... df.append(v[i])
vf
[1, 3, 67, 69, 72, 120, 125]
Il me manque la dernière valeur ...
Mais si je dis:
for i in range(len(v)) :
... if v[i] - v[i-1] <= 5 or v[i+1] - v[i] <= 5 :
... df.append(v[i])
...
Traceback (most recent call last):
File "<stdin>", line 2, in <module>
IndexError : list index out of range
Merci d'avance pour toute suggestion que vous pouvez avoir :-)
@ etienne-s, faites-moi savoir si cela fonctionne. –
Waww c'était simple! Fonctionne vraiment bien! J'ai aussi essayé avec v [1] == 22 et vf se débarrasser de v [0] (différence> 5) qui est exactement ce que je voulais, merci beaucoup! ;-) @ kshitij-mittal –