2012-08-28 4 views
1

j'ai le script exemple suivant avec des valeurs différentes, ma liste actualy xy est beaucoup beaucoup plus grand:Python, regroupant un grand nombre de variables

xy1 = valeur1
XY2 = valeur2
xy3 = value3
xy4 = value4
xy5 = valeur5
xy6 = valeur6
xy7 = valeur7
xy8 = Value8
xy9 = value9

xytotal = somme ((xy1, XY2, xy3, xy4, xy5, ​​xy6, xy7, xy8, xy9))

Le problème se produit quand j'ai des milliers de ces variables xy, il devient fastidieux de les ajouter tout dans la fonction de somme.

Maintenant, y a-t-il un moyen de dire à python de faire la somme de toutes les valeurs xy pour chaque xy (xy1, xy2, xy3 etc ...)?

Merci

+2

Ne pouvez-vous pas tous les mettre dans une liste? – arshajii

Répondre

3

N'utilisez pas de variables séparées. Utilisez une liste, peut-être mélangée avec une autre structure de données si vos données sont suffisamment complexes.

Et pendant que nous y sommes: Variable names aren't data. Supposons que Python rejette vos noms de variables.

0
all_xy = [value1, value2, value3, ...] 
# Note that xy_all[n-1] = valuen 

xy_total = sum(all_xy) 

Si vous vouliez les saisir en utilisant all_xy[n] = valuen, vous pouvez ensuite utiliser all_xy = [0, value1, value2, value3, ...].

En utilisant une structure de liste est certainement préféré en Python à l'aide des noms de variables, pour une chose que vous pouvez facilement écrire compréhensions de liste, par exemple:

positive_xy = [ xy for xy in all_xy if xy>0 ] 
positive_xy_total = sum(positive_xy) 

Une autre option serait d'utiliser un dictionnaire. . Une autre raison de savoir si vous étiez en train de vérifier startswith('xy') dans locals() est que vous pourriez facilement essayer de sommer des variables "inattendues", par ex. une fonction qui provoquerait une exception Python.

Questions connexes