J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu
trouver sur les listes de listes.
Gn=E9 ? Q=E9 ki dit ?
Je parle de ces objets:
x =3D [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
par exemple
Lorsque j'it=E8re sur x, j'obtiens bien un objet liste mais impossible
d'avoir acc=E8s =E0 ses m=E9thodes habituelles.
Par exemple:
x =3D [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, d.reverse(), d.sort(), d.__class__
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu trouver sur les listes de listes. Gné ? Qé ki dit ? Je parle de ces objets: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible d'avoir accès à ses méthodes habituelles. Par exemple: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse(), d.sort(), d.__class__
Avez-vous des idées à me soumettre ? merci par avance
chris
Je croit que la méthode reverse() et sort() renvoie pas de résultat (si None)
elle modifie la liste sur laquelle on les applique.
Bonne soirée. J.B.D.
Bonjour à tous (et à toutes),
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu
trouver sur les listes de listes.
Gné ? Qé ki dit ?
Je parle de ces objets:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible
d'avoir accès à ses méthodes habituelles.
Par exemple:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, d.reverse(), d.sort(), d.__class__
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu trouver sur les listes de listes. Gné ? Qé ki dit ? Je parle de ces objets: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible d'avoir accès à ses méthodes habituelles. Par exemple: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse(), d.sort(), d.__class__
Avez-vous des idées à me soumettre ? merci par avance
chris
Je croit que la méthode reverse() et sort() renvoie pas de résultat (si None)
elle modifie la liste sur laquelle on les applique.
Bonne soirée. J.B.D.
yves
Le Thu, 17 Apr 2008 18:01:53 +0200, Daireaux Jean-Baptiste a écrit:
Bonjour,
Je croit que la méthode reverse() et sort() renvoie pas de résultat (si None)
elle modifie la liste sur laquelle on les applique.
Du code: ################ x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.__class__ d.reverse() print "d.reverse(): ", d d.sort() print "d.sort(): ", d ################ Et encore du code: ############## x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] for d in x: print d, sorted(d), list(reversed(d)), d.__class__ ################
-- Yves
Le Thu, 17 Apr 2008 18:01:53 +0200, Daireaux Jean-Baptiste a écrit:
Bonjour,
Je croit que la méthode reverse() et sort() renvoie pas de résultat (si
None)
elle modifie la liste sur laquelle on les applique.
Du code:
################
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, d.__class__
d.reverse()
print "d.reverse(): ", d
d.sort()
print "d.sort(): ", d
################
Et encore du code:
##############
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, sorted(d), list(reversed(d)), d.__class__
################
Le Thu, 17 Apr 2008 18:01:53 +0200, Daireaux Jean-Baptiste a écrit:
Bonjour,
Je croit que la méthode reverse() et sort() renvoie pas de résultat (si None)
elle modifie la liste sur laquelle on les applique.
Du code: ################ x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.__class__ d.reverse() print "d.reverse(): ", d d.sort() print "d.sort(): ", d ################ Et encore du code: ############## x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] for d in x: print d, sorted(d), list(reversed(d)), d.__class__ ################
-- Yves
chris66
Hummmmmmmmmmm,
J'avais oublié que list.sort() ne crée pas une copie de list qui soit triée, mais trie directement la liste en question... C'est ce que doit vouloir dire ipython par **IN PLACE** quand on fait x.sort?? #################### Type: builtin_function_or_method Base Class: <type 'builtin_function_or_method'> String Form: <built-in method sort of list object at 0x2abc7dcf47a0> Namespace: Interactive Docstring: L.sort(cmp=None, key=None, reverseúlse) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1 #########################
En tout cas merci pour vos réponses et votre rapidité. chris
Hummmmmmmmmmm,
J'avais oublié que list.sort() ne crée pas une copie de list qui soit
triée, mais trie directement la liste en question...
C'est ce que doit vouloir dire ipython par **IN PLACE** quand on fait
x.sort??
####################
Type: builtin_function_or_method
Base Class: <type 'builtin_function_or_method'>
String Form: <built-in method sort of list object at
0x2abc7dcf47a0>
Namespace: Interactive
Docstring:
L.sort(cmp=None, key=None, reverse=False) -- stable sort *IN
PLACE*;
cmp(x, y) -> -1, 0, 1
#########################
En tout cas merci pour vos réponses et votre rapidité.
chris
J'avais oublié que list.sort() ne crée pas une copie de list qui soit triée, mais trie directement la liste en question... C'est ce que doit vouloir dire ipython par **IN PLACE** quand on fait x.sort?? #################### Type: builtin_function_or_method Base Class: <type 'builtin_function_or_method'> String Form: <built-in method sort of list object at 0x2abc7dcf47a0> Namespace: Interactive Docstring: L.sort(cmp=None, key=None, reverseúlse) -- stable sort *IN PLACE*; cmp(x, y) -> -1, 0, 1 #########################
En tout cas merci pour vos réponses et votre rapidité. chris
bruno.desthuilliers
On 17 avr, 17:56, chris66 wrote:
Bonjour à tous (et à toutes),
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu trouver sur les listes de listes. Gné ? Qé ki dit ? Je parle de ces objets: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible d'avoir accès à ses méthodes habituelles. Par exemple: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse(), d.sort(), d.__class__
Bon, tu a déjà eu la réponse (list.sort et list.reverse sont destructives et renvoient None). Juste un petit détail qui aurait dû te mettre la puce à l'oreille : si tu n'avais effectivement plus "eu accès" aux méthodes des "sous-listes", les appels à d.reverse et d.sort auraient levé un AttributeError. Ce qui n'est pas le cas.
Dans ce genre de cas, souvient toi qu'en Python, une méthode est aussi un attribut (de classe, mais pour ce qui nous intéresse ici, c'est un détail). Ce qui déclenche l'appel de la methode, c'est l'application de l'opérateur d'appel (les parenthèses) sur l'objet method retourné par la résolution d'attribut. Donc si tu omets l'opérateur d'appel, tu a l'objet method lui même. Et là, tu peux aisément constater que tu y a bien accès:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse, d.sort, d.__class__
Ce qui ici donne:
[1] <built-in method reverse of list object at 0xb7bf8a2c> <built-in method sort of list object at 0xb7bf8a2c> <type 'list'> [1, 2] <built-in method reverse of list object at 0xb7bf8fac> <built- in method sort of list object at 0xb7bf8fac> <type 'list'> [7, 8] <built-in method reverse of list object at 0xb7bfc1ec> <built- in method sort of list object at 0xb7bfc1ec> <type 'list'> [5, 8, 9] <built-in method reverse of list object at 0xb7bf8b8c> <built-in method sort of list object at 0xb7bf8b8c> <type 'list'> [1, 9, 7, 66] <built-in method reverse of list object at 0xb7bfc38c> <built-in method sort of list object at 0xb7bfc38c> <type 'list'>
HTH
On 17 avr, 17:56, chris66 <chris66...@gmail.com> wrote:
Bonjour à tous (et à toutes),
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu
trouver sur les listes de listes.
Gné ? Qé ki dit ?
Je parle de ces objets:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible
d'avoir accès à ses méthodes habituelles.
Par exemple:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, d.reverse(), d.sort(), d.__class__
Bon, tu a déjà eu la réponse (list.sort et list.reverse sont
destructives et renvoient None). Juste un petit détail qui aurait dû
te mettre la puce à l'oreille : si tu n'avais effectivement plus "eu
accès" aux méthodes des "sous-listes", les appels à d.reverse et
d.sort auraient levé un AttributeError. Ce qui n'est pas le cas.
Dans ce genre de cas, souvient toi qu'en Python, une méthode est aussi
un attribut (de classe, mais pour ce qui nous intéresse ici, c'est un
détail). Ce qui déclenche l'appel de la methode, c'est l'application
de l'opérateur d'appel (les parenthèses) sur l'objet method retourné
par la résolution d'attribut. Donc si tu omets l'opérateur d'appel, tu
a l'objet method lui même. Et là, tu peux aisément constater que tu y
a bien accès:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x:
print d, d.reverse, d.sort, d.__class__
Ce qui ici donne:
[1] <built-in method reverse of list object at 0xb7bf8a2c> <built-in
method sort of list object at 0xb7bf8a2c> <type 'list'>
[1, 2] <built-in method reverse of list object at 0xb7bf8fac> <built-
in method sort of list object at 0xb7bf8fac> <type 'list'>
[7, 8] <built-in method reverse of list object at 0xb7bfc1ec> <built-
in method sort of list object at 0xb7bfc1ec> <type 'list'>
[5, 8, 9] <built-in method reverse of list object at 0xb7bf8b8c>
<built-in method sort of list object at 0xb7bf8b8c> <type 'list'>
[1, 9, 7, 66] <built-in method reverse of list object at 0xb7bfc38c>
<built-in method sort of list object at 0xb7bfc38c> <type 'list'>
J'ai eu beau chercher dans les archives du groupe, je n'ai rien pu trouver sur les listes de listes. Gné ? Qé ki dit ? Je parle de ces objets: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]] par exemple
Lorsque j'itère sur x, j'obtiens bien un objet liste mais impossible d'avoir accès à ses méthodes habituelles. Par exemple: x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse(), d.sort(), d.__class__
Bon, tu a déjà eu la réponse (list.sort et list.reverse sont destructives et renvoient None). Juste un petit détail qui aurait dû te mettre la puce à l'oreille : si tu n'avais effectivement plus "eu accès" aux méthodes des "sous-listes", les appels à d.reverse et d.sort auraient levé un AttributeError. Ce qui n'est pas le cas.
Dans ce genre de cas, souvient toi qu'en Python, une méthode est aussi un attribut (de classe, mais pour ce qui nous intéresse ici, c'est un détail). Ce qui déclenche l'appel de la methode, c'est l'application de l'opérateur d'appel (les parenthèses) sur l'objet method retourné par la résolution d'attribut. Donc si tu omets l'opérateur d'appel, tu a l'objet method lui même. Et là, tu peux aisément constater que tu y a bien accès:
x = [[1],[1,2],[7,8],[5,8,9],[1,9,7,66]]
for d in x: print d, d.reverse, d.sort, d.__class__
Ce qui ici donne:
[1] <built-in method reverse of list object at 0xb7bf8a2c> <built-in method sort of list object at 0xb7bf8a2c> <type 'list'> [1, 2] <built-in method reverse of list object at 0xb7bf8fac> <built- in method sort of list object at 0xb7bf8fac> <type 'list'> [7, 8] <built-in method reverse of list object at 0xb7bfc1ec> <built- in method sort of list object at 0xb7bfc1ec> <type 'list'> [5, 8, 9] <built-in method reverse of list object at 0xb7bf8b8c> <built-in method sort of list object at 0xb7bf8b8c> <type 'list'> [1, 9, 7, 66] <built-in method reverse of list object at 0xb7bfc38c> <built-in method sort of list object at 0xb7bfc38c> <type 'list'>