Je débute en Python. J'ai la liste _triée_ complexe suivante :
lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd'] etc.
cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important.
le nombre d'éléments est bien pair.
il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème, etc...
comment facilement au moyen d'un for balayer la liste ?
j'ai trouvé cela, mais est-ce bien pythonien ?
----- def do_some_work(k, v): print k, " => ", v
i = 0 for x in liste: if (i %% 2 == 0): k = x else: v = x do_some_work(k, v) i = i + 1 -----
Merci
Et pourquoi pas ceci ?
def do_some_work(k, v): print k, " => ", v
for i in xrange(len(liste), 2): do_some_work(liste[i], liste[i+1])
Nicolas
Chez moi, mon script fonctionne, mais le tien, bien que très intéressant, ne fonctionne pas ?!
Je n'obtiens rien !!!
Dominique Crétel
Dominique Crétel writes:
Bonjour,
Je débute en Python. J'ai la liste _triée_ complexe suivante :
lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd'] etc.
cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important.
le nombre d'éléments est bien pair.
il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème, etc...
comment facilement au moyen d'un for balayer la liste ?
for k, v in zip(lite[::2], lite[1::2]): print k, "=>", v
je ne sais pas si c'est optimal, mais c'est concis :)
Merci En effet ça marche ! C'est quoi cette commande zip ? Et je ne connais pas la syntaxe des slices avec 2 ':' ??? (je ne connais que celle avec 1 ':')
Dominique Crétel <d.cretel@wyniwyg.com> writes:
Bonjour,
Je débute en Python.
J'ai la liste _triée_ complexe suivante :
lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd']
etc.
cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important.
le nombre d'éléments est bien pair.
il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème,
etc...
comment facilement au moyen d'un for balayer la liste ?
for k, v in zip(lite[::2], lite[1::2]):
print k, "=>", v
je ne sais pas si c'est optimal, mais c'est concis :)
Merci
En effet ça marche !
C'est quoi cette commande zip ?
Et je ne connais pas la syntaxe des slices avec 2 ':' ???
(je ne connais que celle avec 1 ':')
Je débute en Python. J'ai la liste _triée_ complexe suivante :
lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd'] etc.
cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important.
le nombre d'éléments est bien pair.
il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème, etc...
comment facilement au moyen d'un for balayer la liste ?
for k, v in zip(lite[::2], lite[1::2]): print k, "=>", v
je ne sais pas si c'est optimal, mais c'est concis :)
Merci En effet ça marche ! C'est quoi cette commande zip ? Et je ne connais pas la syntaxe des slices avec 2 ':' ??? (je ne connais que celle avec 1 ':')
Jean-Sebastien Mouret
NicolasP writes:
Bonjour, Je débute en Python. J'ai la liste _triée_ complexe suivante : lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd'] etc. cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important. le nombre d'éléments est bien pair. il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème, etc... comment facilement au moyen d'un for balayer la liste ? j'ai trouvé cela, mais est-ce bien pythonien ? ----- def do_some_work(k, v): print k, " => ", v i = 0 for x in liste: if (i %% 2 == 0): k = x else: v = x do_some_work(k, v) i = i + 1 ----- Merci
Et pourquoi pas ceci ?
def do_some_work(k, v): print k, " => ", v
for i in xrange(len(liste), 2): do_some_work(liste[i], liste[i+1])
for i in xrange(0, len(liste), 2): ...
:)
-- js
NicolasP <nicolasp@aaton.com> writes:
Bonjour,
Je débute en Python.
J'ai la liste _triée_ complexe suivante :
lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd']
etc.
cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est
important.
le nombre d'éléments est bien pair.
il existe un lien entre le 1er élément et le 2ème, le 3ème et le
4ème, etc...
comment facilement au moyen d'un for balayer la liste ?
j'ai trouvé cela, mais est-ce bien pythonien ?
-----
def do_some_work(k, v):
print k, " => ", v
i = 0
for x in liste:
if (i %% 2 == 0):
k = x
else:
v = x
do_some_work(k, v)
i = i + 1
-----
Merci
Et pourquoi pas ceci ?
def do_some_work(k, v):
print k, " => ", v
for i in xrange(len(liste), 2):
do_some_work(liste[i], liste[i+1])
Bonjour, Je débute en Python. J'ai la liste _triée_ complexe suivante : lite = ['222', 'bbb', '111', 'aaa', '333', 'ccc', '21456', 'fdfd'] etc. cela aurait pu être un dictionnaire, mais l'ordre ci-dessus est important. le nombre d'éléments est bien pair. il existe un lien entre le 1er élément et le 2ème, le 3ème et le 4ème, etc... comment facilement au moyen d'un for balayer la liste ? j'ai trouvé cela, mais est-ce bien pythonien ? ----- def do_some_work(k, v): print k, " => ", v i = 0 for x in liste: if (i %% 2 == 0): k = x else: v = x do_some_work(k, v) i = i + 1 ----- Merci
Et pourquoi pas ceci ?
def do_some_work(k, v): print k, " => ", v
for i in xrange(len(liste), 2): do_some_work(liste[i], liste[i+1])
for i in xrange(0, len(liste), 2): ...
:)
-- js
R12y
Dominique Crétel :
Chez moi, mon script fonctionne, mais le tien, bien que très intéressant, ne fonctionne pas ?!
tu peux aussi faire un
liste.reverse() # une boucle for cle=liste.pop() valeur=liste.pop() dict[cle]=valeur
Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences. The returned list is truncated in length to the length of the shortest argument sequence.
Return a list of tuples, where each tuple contains the i-th element
from each of the argument sequences. The returned list is truncated
in length to the length of the shortest argument sequence.
Return a list of tuples, where each tuple contains the i-th element from each of the argument sequences. The returned list is truncated in length to the length of the shortest argument sequence.