Manipulation des listes
Résolu/Ferméyg_be Messages postés 23400 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 18 décembre 2024 - 4 juin 2023 à 13:49
- Gertrude a préparé la liste des affaires à prendre pour l'excursion. juliette a modifié cette liste en utilisant le mode suivi des modifications proposé par le traitement de texte.
- Suivi des modifications Word : comment l'utiliser - Guide
- Liste déroulante excel - Guide
- Liste déroulante en cascade - Guide
- A quoi sert le mode avion - Guide
- Mode sécurisé samsung - Guide
4 réponses
Modifié le 7 juin 2023 à 12:55
ceci te donnera le résultat attendu:
v = [ 299.40119760479047, 301.2048192771085, 314.4654088050313, 1515.1515151515162, 1470.5882352941182, 1515.1515151515134, 1515.1515151515163 ] # voici le tableau que je veux trier drt = [v[0]] for i in range(len(v) - 1): if abs(v[i + 1] - v[i]) > abs(v[i]) / 10 : drt.append(v[i + 1]) print(drt)
> liste qui ne va contenir que les valeurs dont la difference est trop grande.
C'est quoi trop grande?
> voici le tableau que je veux trier.
Ton énoncé n'est pas clair et ton code plus qu'étrange ...
Peux-tu être plus précis?
À première vue, je ferais un tri avec la méthode .sort()
et j'afficherais la valeur liste[0] et liste[-1]
Dans la pratique en géophysique, le tableau en entré sont des vitesses qui traverse les couchent. quand on fait une interprétation, la variation de vitesse entre 314 et 1515 montre qu'on est passé d'une couche à une autre.
j'ai deja ecrit le programme pour calculer les vitesses dans le sol, maintenant dans la suite il faut detecter ce genre de variation. dans le cas du tableau suivant
[299.40119760479047,
301.2048192771085,
314.4654088050313,
1515.1515151515162,
1470.5882352941182,
1515.1515151515134,
1515.1515151515162]
je veux que mon programme sache que quand il passe de 299 à 314 il se situe dans la meme couche donc dans le tableau creer il ne met qu'un seul element parmi les trois. lorsqu'il passe de 314 à 1515 c'est un changement de couche donc il enregistre la vitesse de la nouvelle couche.
en gros je voudrais avoir un tableau à la fin qui ne garde que une vitesse par couche. je ne sais pas si j'ai ete clair
ce que j'ai fais cest une soustraction, je me dis que si je varie avec un intervalle de de + OU - 10 je suis dans une meme couche. et si je suis au dela je suis dans une autre couche differente de la premiere alors je dois ajouter (append) la valeur qui correspond à la vitesse du nouveau milieu au tableau drt=[0] crée au debut. la valeur qu'on a append vient retrouver la valeur de la vitesse dans la couche precedente
4 juin 2023 à 10:14
bonjour,
Quel est le résultat obtenu par ton code?
4 juin 2023 à 10:21
qu'essaies-tu d'obtenir en écrivant
abs(v[i+1]-v[i]>1)