comment diviser chaque élément dans une liste de listes par un certain nombre de python
J'ai une liste de liste de " q " et je veux diviser chaque nombre dans q par la somme dans chaque liste (=10)
J'ai essayé ceci:
q = [[0,0,0,10],[1,2,6,1]]
B=[]
for x in q:
y = [z/sum(x[:len(x)]) for z in x]
B.append(y)
print B
Il ne me donne pas le résultat attendu
quelqu'un sait quel est le problème ici?
InformationsquelleAutor balibakbar | 2012-02-15
Vous devez vous connecter pour publier un commentaire.
Remarque: dans
python3
,float()
n'est pas nécessaire.q = [[7,2,3],[4,5,6]]
etr=[[6,1,2],[3,4,5]]
. J'ai besoin de diviser les éléments correspondants.B= [[float(j)/float(i) for j in q] for i in r]
. Cependant, je reçois un message d'erreur : TypeError: float() argument doit être une chaîne de caractères ou un nombre. J'ai importé la division de l'avenir. Toutes les suggestions?Comme d'autres l'ont noté, votre programme va utiliser division entière, qui ne semble pas être ce que vous cherchez. Au lieu de convertir l'une des valeurs explicitement à un flotteur, cependant, je vais suggérer que la solution est d'ajouter
from ___future__ import division
vers le haut de votre script (et, en effet, chaque script vous écrivez pour les versions de Python avant de Python 3). Cette commutateurs de la division de retourner les valeurs flottantes, ce qui élimine beaucoup de subtils de mathématiques de bugs. Pour ces occasions où vous avez besoin de division entière, vous pouvez utiliser une double barre oblique//
.Vous effectuez division entière, puisque les deux opérandes sont des entiers.
q = [[7,2,3],[4,5,6]]
etr=[[6,1,2],[3,4,5]]
. J'ai besoin de diviser les éléments correspondants.B= [[float(j)/float(i) for j in q] for i in r]
. Cependant, je reçois un message d'erreur : TypeError: float() argument doit être une chaîne de caractères ou un nombre. J'ai importé la division de l'avenir. Toutes les suggestions?Vous utilisez division entière, qui va s'arrondir le résultat à l'entier suivant vers zéro. Convertir un des opérandes à
float
pour obtenir floating point de la division. Faire convertir le tableau en place, vous pouvez le faire