Bonjour,
Je travaille sur un tableau à 2 dimensions contenant des items et leurs caractéristiques, j'utilise pour ceci une liste de listes qui ressemble à ceci :
[[0, 200.0, 150.0, 22.0, 1]
[0, 200.0, 150.0, 22.0, 1]
[3, 600.0, 380.0, 45.0, 0]
[4, 800.0, 650.0, 60.0, 1]
......]
Dans une boucle, je manipule et rempli les valeurs et à la fin de la boucle (impérativement), il faut que je "recharge" la 4ème valeur a son maximum, et si la 5ème à le flag "0", que j'efface l'item, c'est là que ça coince, non pas que je n'y arrive pas, mais que cette liste peut contenir plusieurs dizaines de milliers d'items et que c'est incroyablement lent !
Le parcours avec remplissage n'est pas si lent en soit, là où tout s'effondre, c'est pour le retrait d'items, dont voici grossièrement le code isolé :
J'ai beau retourner le problème dans tous les sens, je ne vois pas comment reduire drastiquement le temps d'execution en continuant à utiliser les listes.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 for x in liste[:]: if x[4] == 0: liste.remove(x)
Je me suis donc penché sur numarray qui apparement facilite la manipulation de grands tableaux, mais je ne trouve pas comment faire ceci avec, et ne suis pas sur non plus que ce soit le bon outil (j'avoue que j'ai du mal à decortiquer la doc).
Je cherche donc si possible un exemple de code avec numarray qui supprimerait des "lignes" si la dernière valeur est à zero et aussi qui serait capable de remplire la quatrième colone avec une valeur par défaut.
Où alors, une autre solution bien entendu si elle existe
Partager