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 :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
x1 = pylab.arange(0,1,0.1)
, j'aurais bien vu quelquechose du genre :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(sorted(x1) != x1): ...
mais quand je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
print sorted(x1)
print x1
print sorted(x1) != x1
j'obtiens :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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,
Code : Sélectionner tout - Visualiser dans une fenêtre à part
if(all(sorted(x1) != x1)):...
semble faire le boulot, mais je doute!

merci pour vos eclaircicements !