Si je veux parcourir un range(0, n) par exemple en sens inverse, il me
faudrait utiliser range(n - 1, -1, -1). Ce que je trouve tout à fait
illisible.
Déjà, je ne suis pas convaincu par le fait que le range() doit un
intervalle semi-ouvert [n1, n2[. Personnellemnt, je dis bien
personnellement, avec mes habitudes, je préfèrerais écrire, pour
parcourir une liste de len() n:
for i in range(0, n-1):
Mais une fois admis que c'était:
for i in range(0, n):
Je trouverais plus simple pour le sens inverse d'écrire un truc du
genre:
for i in range(0, n).down():
que:
for i in range(n - 1, -1, -1):
qui ne me parle pas du tout. Et risque d'erreur.
En écrivant le message, j'ai testé ça:
for i in range(0, n)[::-1]:
qui marche.
Je laisse quend même la question...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Christophe
Bonjour,
Si je veux parcourir un range(0, n) par exemple en sens inverse, il me faudrait utiliser range(n - 1, -1, -1). Ce que je trouve tout à fait illisible. Déjà, je ne suis pas convaincu par le fait que le range() doit un intervalle semi-ouvert [n1, n2[. Personnellemnt, je dis bien personnellement, avec mes habitudes, je préfèrerais écrire, pour parcourir une liste de len() n: for i in range(0, n-1): Mais une fois admis que c'était: for i in range(0, n): Je trouverais plus simple pour le sens inverse d'écrire un truc du genre: for i in range(0, n).down(): que: for i in range(n - 1, -1, -1): qui ne me parle pas du tout. Et risque d'erreur. En écrivant le message, j'ai testé ça: for i in range(0, n)[::-1]: qui marche. Je laisse quend même la question...
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
for i in reversed(range(n)): pass
Bonjour,
Si je veux parcourir un range(0, n) par exemple en sens inverse, il me
faudrait utiliser range(n - 1, -1, -1). Ce que je trouve tout à fait
illisible.
Déjà, je ne suis pas convaincu par le fait que le range() doit un
intervalle semi-ouvert [n1, n2[. Personnellemnt, je dis bien
personnellement, avec mes habitudes, je préfèrerais écrire, pour
parcourir une liste de len() n:
for i in range(0, n-1):
Mais une fois admis que c'était:
for i in range(0, n):
Je trouverais plus simple pour le sens inverse d'écrire un truc du genre:
for i in range(0, n).down():
que:
for i in range(n - 1, -1, -1):
qui ne me parle pas du tout. Et risque d'erreur.
En écrivant le message, j'ai testé ça:
for i in range(0, n)[::-1]:
qui marche.
Je laisse quend même la question...
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
Si je veux parcourir un range(0, n) par exemple en sens inverse, il me faudrait utiliser range(n - 1, -1, -1). Ce que je trouve tout à fait illisible. Déjà, je ne suis pas convaincu par le fait que le range() doit un intervalle semi-ouvert [n1, n2[. Personnellemnt, je dis bien personnellement, avec mes habitudes, je préfèrerais écrire, pour parcourir une liste de len() n: for i in range(0, n-1): Mais une fois admis que c'était: for i in range(0, n): Je trouverais plus simple pour le sens inverse d'écrire un truc du genre: for i in range(0, n).down(): que: for i in range(n - 1, -1, -1): qui ne me parle pas du tout. Et risque d'erreur. En écrivant le message, j'ai testé ça: for i in range(0, n)[::-1]: qui marche. Je laisse quend même la question...
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
for i in reversed(range(n)): pass
Pierre Maurette
[...]
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
for i in reversed(range(n)): pass
Merci. Effectivement reversed() fonctionne. Ça renvoie un iterator, ce qui convient. Python 2.5 est encore aujourd'hui une légère contrainte. Peut-être laisser à range(n)[::-1] pour l'instant ? (et je n'avais même pas pensé à écrire range(n) au lieu de range(0, n) !)
-- Pierre Maurette
[...]
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
for i in reversed(range(n)):
pass
Merci. Effectivement reversed() fonctionne. Ça renvoie un iterator, ce
qui convient. Python 2.5 est encore aujourd'hui une légère contrainte.
Peut-être laisser à range(n)[::-1] pour l'instant ? (et je n'avais même
pas pensé à écrire range(n) au lieu de range(0, n) !)
reversed a ete ajoute dans Python 2.5 pour ce genre de cas.
for i in reversed(range(n)): pass
Merci. Effectivement reversed() fonctionne. Ça renvoie un iterator, ce qui convient. Python 2.5 est encore aujourd'hui une légère contrainte. Peut-être laisser à range(n)[::-1] pour l'instant ? (et je n'avais même pas pensé à écrire range(n) au lieu de range(0, n) !)
Effectivment: sorted(range(n), reverse=True) fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour savoir qu'il n'a pas besoin de trier un range() ?
-- Pierre Maurette
(snip)
reversed a ete ajoute dans Python 2.5
Dans Python 2.4. Avec sorted etc...
Effectivment:
sorted(range(n), reverse=True)
fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour
savoir qu'il n'a pas besoin de trier un range() ?
Effectivment: sorted(range(n), reverse=True) fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour savoir qu'il n'a pas besoin de trier un range() ?
-- Pierre Maurette
Christophe
(snip)
reversed a ete ajoute dans Python 2.5
Dans Python 2.4. Avec sorted etc...
C'est vrai.
Effectivment: sorted(range(n), reverse=True) fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour savoir qu'il n'a pas besoin de trier un range() ?
Ah mais ce n'est pas tout à fait ce que Bruno voulait dire. reversed a été ajouté dans Python 2.4, pas dans 2.5. Il a été ajouté en même temps que sorted de fait.
C'est ma faute, j'aurais du me souvenir que mon raccourci pour lancer un interpreteur Python pointait toujours sur mon installation de Python 2.4 et non pas 2.5.
(snip)
reversed a ete ajoute dans Python 2.5
Dans Python 2.4. Avec sorted etc...
C'est vrai.
Effectivment:
sorted(range(n), reverse=True)
fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour
savoir qu'il n'a pas besoin de trier un range() ?
Ah mais ce n'est pas tout à fait ce que Bruno voulait dire. reversed a
été ajouté dans Python 2.4, pas dans 2.5. Il a été ajouté en même temps
que sorted de fait.
C'est ma faute, j'aurais du me souvenir que mon raccourci pour lancer un
interpreteur Python pointait toujours sur mon installation de Python 2.4
et non pas 2.5.
Effectivment: sorted(range(n), reverse=True) fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil pour savoir qu'il n'a pas besoin de trier un range() ?
Ah mais ce n'est pas tout à fait ce que Bruno voulait dire. reversed a été ajouté dans Python 2.4, pas dans 2.5. Il a été ajouté en même temps que sorted de fait.
C'est ma faute, j'aurais du me souvenir que mon raccourci pour lancer un interpreteur Python pointait toujours sur mon installation de Python 2.4 et non pas 2.5.
Bruno Desthuilliers
(snip)
reversed a ete ajoute dans Python 2.5
Dans Python 2.4. Avec sorted etc...
Effectivment: sorted(range(n), reverse=True)
Actuellement, je pensais oplutôt à:
for x in reversed(range(5)): print x
fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil
s/interpreter/implémentation de sorted/
pour savoir qu'il n'a pas besoin de trier un range() ?
Ce que sorted reçoit, c'est une liste. Donc la question est de savoir si sorted est capable de repérer qu'une liste est triée. Sur ce genre de point, je ferais plus confiance à tes compétences en algo qu'à ma connaissance de l'implémentation de Python pour savoir si c'est possible sans un surcoût trop important pour que ça en vaille la peine.
(snip)
reversed a ete ajoute dans Python 2.5
Dans Python 2.4. Avec sorted etc...
Effectivment:
sorted(range(n), reverse=True)
Actuellement, je pensais oplutôt à:
for x in reversed(range(5)):
print x
fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil
s/interpreter/implémentation de sorted/
pour
savoir qu'il n'a pas besoin de trier un range() ?
Ce que sorted reçoit, c'est une liste. Donc la question est de savoir si
sorted est capable de repérer qu'une liste est triée. Sur ce genre de
point, je ferais plus confiance à tes compétences en algo qu'à ma
connaissance de l'implémentation de Python pour savoir si c'est possible
sans un surcoût trop important pour que ça en vaille la peine.
fonctionne. Mais je ne sais pas si l'interprêteur est assez subtil
s/interpreter/implémentation de sorted/
pour savoir qu'il n'a pas besoin de trier un range() ?
Ce que sorted reçoit, c'est une liste. Donc la question est de savoir si sorted est capable de repérer qu'une liste est triée. Sur ce genre de point, je ferais plus confiance à tes compétences en algo qu'à ma connaissance de l'implémentation de Python pour savoir si c'est possible sans un surcoût trop important pour que ça en vaille la peine.