Bonjour,

Ayant fait de courtes recherches sur le net et n'ayant pas trouvé, je me permets de vous solliciter.
Sur python 2.5.1 environnement Windows Xp, je fais ceci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
 
>>>a=[1.0,2.0,3.0]
>>>b=map(lambda f:f*100/sum(a),a)
>>>print b
[16.6666666666668, 33.3333333333336, 50.0]
>>>c=map(lambda f:round(f,2),b)
>>>print c
[16.670000000000002, 33.3299999999998, 50.0]
Bien entendu, je voudrais avoir [16,67, 33,33, 50.0]
J'avais mis le round initialement dans le 1er map ce qui revient au même
Avez vous une suggestion? J'ai pas envie de créer une fonction alors qu'il y a les outils pour, et surtout je voudrais comprendre pourquoi.

Merci

PS:

Plus fort, je dois avoir les elements en chaine, je fais donc:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
>>>d=map(lambda f:str(f),c)
>>>print d
['16.67', '33.33', '50.0']