Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
985 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [Python] Tri tableau

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Python] Tri tableau

n°2232229
EkPuZ
Posté le 30-06-2014 à 19:26:57  profilanswer
 

Bonjour,  
 
J'ai un petit souci avec un programme python  :(  
 
J'ai des données dans un fichier que je récupère, et j'ai besoin d'effectuer un tri.
 
Les données se présentent ainsi : j'ai plusieurs tableaux de tailles identiques, corrélés entre eux au niveau de l'indice, je fais un tri pour ne prendre que ceux qui m'intéressent.
 
Dans le tableau A, il y a plusieurs occurrences de nombres, j'ai besoin de sommer les éléments du tableau B par rapport à leur indice dans A et d'enregistrer cette valeur dans un nouveau tableau C.
 
tabA = [1,1,1,2,3,3]
tabB = [1,2,3,4,5,6]
 
et je veux tabC[0] = 6, car 1 apparait trois fois aux indices 0,1 et 2, donc je somme 1+2+3 dans B que j'enregistre dans C.
Ainsi tabC[1]= 4, tabC[2] = 11    soit tabC = [6,4,11]
 
J'aimerais faire ce tri dans ma boucle, c'est à dire pendant le 1er tri, voici ce que j'ai fais :
 

Code :
  1. currentID = 0
  2. tot = 0
  3.     for i in range(len(x)):
  4.      
  5.             if (is_not_in(x[i],y[i],z[i]) == True):    ### condition sur le 1er tri
  6.          
  7.                  newA.append(A[i])                         ### mes nouveaux tableaux une première fois trié
  8.                  newB.append(B[i])                         ###
  9.                  test = A[i]                           
  10.                  if(test == newA[i-1]):            ### Si l'élément précédent a la même valeur que celui qui vient juste après
  11.                          tot = tot + B[i-1] + B[i]          ### je les sommes
  12.                  else:
  13.                          C.append(tot)                         ### Sinon j'enregistre la valeur dans mon tableau C


 
Sauf que je suis out of range ici car à 0 il n'y a pas d'élément -1....
 
Un petit coup de main s'il vous plait ?  :jap:  :jap:

mood
Publicité
Posté le 30-06-2014 à 19:26:57  profilanswer
 

n°2232272
suizokukan
Posté le 01-07-2014 à 07:44:41  profilanswer
 

Réécris ton code en utilisant count(http://www.tutorialspoint.com/python/list_count.htm).


---------------
rule #1 : trust the python
n°2232274
EkPuZ
Posté le 01-07-2014 à 08:36:17  profilanswer
 

Salut,
 
Tout d'abord merci de ta réponse !
 
Je ne pense pas que je puisse utilisé count, car je ne connais pas les nombres qui sont dans mon tableau A, et je ne peux pas les tester tous un par un car il ne s'agit pas de simple entier comme dans mon exemple ! :(

n°2233065
masklinn
í dag viðrar vel til loftárása
Posté le 09-07-2014 à 12:38:51  profilanswer
 

mais… pourquoi tu tries ton bordel à la main? Pourquoi tu tries tout court, d'ailleurs?

 
Code :
  1. import itertools
  2.  
  3. tabA = [1,1,1,2,3,3]
  4. tabB = [1,2,3,4,5,6]
  5.  
  6. result = [
  7.    sum(b for a, b in pairs)
  8.    for key, pairs in itertools.groupby(
  9.        zip(tabA, tabB), key=lambda item: item[0])
  10. ]
  11.  
  12.  
  13. assert result == [6, 4, 11]


Message édité par masklinn le 09-07-2014 à 12:46:09

---------------
Stick a parrot in a Call of Duty lobby, and you're gonna get a racist parrot. — Cody

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [Python] Tri tableau

 

Sujets relatifs
[RESOLU]Remplir un tableau avec 2 autres tableaux EXCEL[Résolu] Tri et opérations dans un tableau
Tableau dynamique[Python 3] Lister fichiers présents sur un serveur HTTP
[Python 3.X] Utilisation de urllibChanger la valeur d'une cellule d'un "tableau"
Récupérer valeur d'un tableauPython AttributeError
[PYTHON] Plantage suspect! 
Plus de sujets relatifs à : [Python] Tri tableau


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR