Bonjour,
je bloque sur une bêtise, qui révèle surement une incompréhension...
Je veux tester qu'une liste est triée, dans l'ordre croissant
après l'avoir créée :
x1 = pylab.arange(0,1,0.1)
, j'aurais bien vu quelquechose du genre :
if(sorted(x1) != x1): ...
mais quand je fais :
1 2 3
| print sorted(x1)
print x1
print sorted(x1) != x1 |
j'obtiens :
1 2 3
| [0.0, 0.10000000000000001, 0.20000000000000001, 0.30000000000000004, 0.40000000000000002, 0.5, 0.60000000000000009, 0.70000000000000007, 0.80000000000000004, 0.90000000000000002]
[ 0. 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0.9]
[False False False False False False False False False False] |
Et alors, pourquoi la fonction sorted() se permet-elle de modifier le contenu de ma liste ?
Aussi, pourquoi 0.10000000000000001 == 0.1 ?
ducoup,
if(all(sorted(x1) != x1)):...
semble faire le boulot, mais je doute!
merci pour vos eclaircicements !
Partager