0
votes

Somme de pièces dans une liste

J'ai écrit ce code: xxx

La sortie est la suivante: [20, 20, 19, 16, 10, 0]

Mais j'ai un petit problème. Temps d'exécution C'est un peu trop long pour les grandes listes. Pouvez-vous me dire s'il existe un autre mode pour l'écrire?

thx!


6 commentaires

juste dire, quand j'exécute votre code, je reçois [21, 20, 18, 15, 11, 6]


Pourquoi compter tout encore? Si vous supprimez une valeur de la liste, soustrayez-le du nombre précédent.


De plus, vous pouvez construire les comptes de l'autre côté, à partir de la fin et de l'ajout, et d'inverser la liste des comptes à la fin si vous avez vraiment besoin de.


J'ai oublié de mentionner, la liste doit contenir 0 et j'ai utilisé arr.append (0)


quel est le résultat attendu? Les éléments des éléments sont-ils comptés?


Il n'est pas nécessaire de commander des comptes.La matrice initiale est [1, 2, 3, 4, 5, 6] et la sortie attendue est [21, 20, 18, 15, 11, 6, 0], IDK Comment ajouter 0 en tableau.


4 Réponses :


2
votes

Je suggérerais ithertools.accumuler code> xxx pré>


avec quelques tests, il est beaucoup plus performant, pour les chiffres de 20 km p>

accumulate 0:00:00.004001
question   0:00:05.340281


3 commentaires

J'ai oublié de mentionner, la liste doit contenir 0 et j'ai utilisé arr.append (0), probablement c'est le problème ..


@Rares où devrait être le 0? Je ne vois pas cette ligne dans votre code, pourrait modifier votre message pour l'ajouter?


Pour la liste de quelques dizaines de valeurs, résultat = liste (accumuler (inversé (ARR), ajouter)) [:: - 1] est plus rapide (et environ 20% plus rapide pour les grandes listes), comme Il n'est pas nécessaire de construire la liste inversée. Pour les petites listes, la différence est négligeable.



0
votes

Ce n'est pas parfait mais un peu plus rapide: xxx

heure: 1.9620031519999657 xxx TEMPS: 1.408351424999978


0 commentaires

1
votes

in python , supprimer le premier élément d'une liste nécessite que tous les éléments suivants soient déplacés et prend donc O (n) . Puisque vous faites ce n fois (avec n étant la longueur de votre tableau), l'ensemble La complexité du temps de votre solution est O (n 2 )

toute solution qui fonctionne uniquement dans < Strong> O (N) La complexité du temps devrait être bonne pour vous. Voici celui-ci qui ne nécessite aucune importation externe et est similaire à votre style de votre solution d'origine: xxx


0 commentaires

0
votes

Si vous êtes à chaque fois conscient, essayez toujours d'utiliser des bibliothèques telles que NUMPY CODE> STRORT>.

IN NUMPY Ce sera facile et efficace. P>

pip install numpy


0 commentaires