Comment la somme d'une liste de nombres en python
Alors tout d'abord, j'ai besoin d'extraire les numéros à partir d'une gamme de 455,111,451, à 455,112,000.
Je pourrais le faire manuellement, il y a seulement 50 numéros dont j'ai besoin, mais ce n'est pas le point.
J'ai essayé de:
for a in range(49999951,50000000):
print +str(a)
Que dois-je faire?
OriginalL'auteur FZEROX | 2013-07-04
Vous devez vous connecter pour publier un commentaire.
Utilisation
somme
C'est un builtin fonction, ce Qui signifie que vous n'avez pas besoin d'importer quoi que ce soit ou de faire quelque chose de spécial pour l'utiliser. vous devriez toujours consulter la documentation ou les tutoriels avant de venir demander ici, dans le cas où il existe déjà - aussi, StackOverflow a une fonction de recherche qui pourrait vous ont aidé à trouver une réponse à votre problème ainsi.
La
somme
fonction dans ce cas, prend une liste d'entiers, et ne cessent de s'ajouter à l'autre, de la même façon que ci-dessous:Également similaires à
Réduction
:sum(range(49999951,50000000))\ print math.factorial(100)
Désolé de vous déranger.Vous ne pouvez pas éviter la
L
(long) à la fin, parce que le résultat de la somme des chiffres est tout simplement plus grand que le maximum d'un nombre entier, donc il doit être long. Je ne suis pas sûr de ce que tu veux dire par "Im en utilisantsum(range(49999951,50000000))\ print math.factorial(100)
" Si c'est une question de suivi, veuillez poser une nouvelle question.Ce fut ce qui arriva après la recherche sur la façon d'éviter le L, j'ai peut-être complètement à côté, j'ai juste commencé à python et à la programmation.
Bien le
L
seulement apears comme lerepr
de la valeur du résultat... si vousprint
la valeur, il n'aura pas laL
à la fin, leL
est juste là pour laisser vous sais que c'est long.OriginalL'auteur Inbar Rose
sum
est le moyen le plus évident, mais si vous aviez une gamme massive et pour calculer la somme en incrémentant à chaque le nombre à chaque fois pourrait prendre un certain temps, alors vous pouvez le faire mathématiquement à la place (comme indiqué danssum_range
):Sorties:
Tout dépend de ce que vous êtes à la recherche pour - la
sum_range
méthode qui est donné ici est beaucoup plus rapide, plus efficace pour l'obtention de la somme, mais c'est seulement pour un type spécifique de calcul de la somme de tous les nombres entiers entre X et Y. Il n'y a pas d'option ici pour sauter de nombres, ou de plusieurs plages, ou de plusieurs types - seulement la somme des entiers compris entre X et Y... 🙂 ainsi, en fonction des besoins, parfois, l'approche la plus directe est le meilleur, d'autres fois, le plus robuste, plus générique, et portable, est la meilleure option.Une légère tweak dans les mathématiques et il peut le faire, mais je suis complètement d'accord à l'aide de
sum
est la plus évidente et la plus facilement la solution adaptée.Permettez-moi de reformuler, "c'est la meilleure solution pour ce question".
OriginalL'auteur Jon Clements
Je n'ai pas à vos question
si vous voulez avoir la somme de nombres
si vous voulez avoir les numéros dans une liste:
sum
fonction. B.range(x,y)
déjà conduit à une liste, pas besoin de parcourir et d'assigner à chaque valeur à une nouvelle liste...Si vous remarquez un qui pose une question de ce genre est un python débutant certainement. si a quelqu'un l'a déjà mentionné à l'aide de somme ainsi que je viens de faire l'interrogatoire mec d'une autre alternative. B. gamme ne donne pas une liste en python 3 si je me souviens bien
R. c'est toujours pas une excuse pour faire de l'ombre aux builtin
sum
(filature signifie en utilisant le même nom que...) B. Cette question n'est pas marqué comme Python 2 ou 3.. et même si oui, c'est le moins efficace pour convertir un objet iterable à une liste, la meilleure façon est tout simplement:list(range(x,y))
(si, en effet, il est Python 3 etrange()
retourne un objet iterable et non pas une liste)excuse? 🙂 eh bien probablement cet exemple peut clarifier mon point de vue. Il est une question classique qui demander d'écrire un morceau de code qui ajoute deux grands nombres par exemple 99999999999999 qui sont stockés dans une chaîne de caractères. cela dépend du langage que vous utilisez, vous pouvez simplement utiliser une bibliothèque et d'ajouter deux gros chiffres, mais il y a toujours un enseignement à la résolution du problème par certains aspects bas niveau du code que vous écrivez vous-même.
OriginalL'auteur Moh Zah