Voilà j'ai une chaîne de taille paire
s = "nimportquoi!"
et je veux obtenir
["ni","mp","or","tq","uo","i!"]
c'est à dire découper par paire de caractères
pour l'instant j'ai:
[s[2*i:2*i+2] for i in range(0,len(s)/2)]
qui marche
Avez vous autre chose? plus propre? plus performant?
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Eric Brunel
On Thu, 15 Mar 2007 17:32:30 +0100, JBB wrote:
Bonjour à tous
Voilà j'ai une chaîne de taille paire s = "nimportquoi!" et je veux obtenir ["ni","mp","or","tq","uo","i!"] c'est à dire découper par paire de caractères
pour l'instant j'ai: [s[2*i:2*i+2] for i in range(0,len(s)/2)] qui marche
Avez vous autre chose? plus propre? plus performant?
Disons au moins autre chose, peut-être un petit poil plus lisible quand on sait comment utiliser le troisième paramètre de range:
[s[i:i+2] for i in range(0, len(s), 2)]
Mais ça évite juste les /2 et *2...
HTH quand même. -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
On Thu, 15 Mar 2007 17:32:30 +0100, JBB <nospam@nospam.com> wrote:
Bonjour à tous
Voilà j'ai une chaîne de taille paire
s = "nimportquoi!"
et je veux obtenir
["ni","mp","or","tq","uo","i!"]
c'est à dire découper par paire de caractères
pour l'instant j'ai:
[s[2*i:2*i+2] for i in range(0,len(s)/2)]
qui marche
Avez vous autre chose? plus propre? plus performant?
Disons au moins autre chose, peut-être un petit poil plus lisible quand on
sait comment utiliser le troisième paramètre de range:
[s[i:i+2] for i in range(0, len(s), 2)]
Mais ça évite juste les /2 et *2...
HTH quand même.
--
python -c "print ''.join([chr(154 - ord(c)) for c in
'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
Voilà j'ai une chaîne de taille paire s = "nimportquoi!" et je veux obtenir ["ni","mp","or","tq","uo","i!"] c'est à dire découper par paire de caractères
pour l'instant j'ai: [s[2*i:2*i+2] for i in range(0,len(s)/2)] qui marche
Avez vous autre chose? plus propre? plus performant?
Disons au moins autre chose, peut-être un petit poil plus lisible quand on sait comment utiliser le troisième paramètre de range:
[s[i:i+2] for i in range(0, len(s), 2)]
Mais ça évite juste les /2 et *2...
HTH quand même. -- python -c "print ''.join([chr(154 - ord(c)) for c in 'U(17zX(%,5.zmz5(17l8(%,5.Z*(93-965$l7+-'])"
JBB
Bonsoir !
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Sympa je découvre de nouvelles fonctions..
voilà une nouvelle version:
map(str.__add__,s[::2],s[1::2])
qui me parait de plus en plus propre.
Bonsoir !
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Sympa je découvre de nouvelles fonctions..
voilà une nouvelle version:
map(str.__add__,s[::2],s[1::2])
qui me parait de plus en plus propre.
Bruno Desthuilliers
Bonsoir !
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Sympa je découvre de nouvelles fonctions..
voilà une nouvelle version:
map(str.__add__,s[::2],s[1::2])
qui me parait de plus en plus propre.
Mmm... <mode="puriste"> __add__ est une méthode d'implémentation, et donc ne devrait pas être utlisée directement. La solution politiquement correct serait d'utiliser le module operator:
from operator import add map(add,s[::2],s[1::2])
</mode>
Mais bon, c'est histoire de dire, hein...
Bonsoir !
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Sympa je découvre de nouvelles fonctions..
voilà une nouvelle version:
map(str.__add__,s[::2],s[1::2])
qui me parait de plus en plus propre.
Mmm...
<mode="puriste">
__add__ est une méthode d'implémentation, et donc ne devrait pas être
utlisée directement. La solution politiquement correct serait d'utiliser
le module operator:
Avez vous autre chose? plus propre? plus performant?
Plus propre, je ne suis pas sûr.Mais, tordu, oui :
print map(''.join,zip(s[::2],s[1::2]))
Bin quoi ? C'est effectivement plus propre, et certainement moins tordu.
Sympa je découvre de nouvelles fonctions..
voilà une nouvelle version:
map(str.__add__,s[::2],s[1::2])
qui me parait de plus en plus propre.
Mmm... <mode="puriste"> __add__ est une méthode d'implémentation, et donc ne devrait pas être utlisée directement. La solution politiquement correct serait d'utiliser le module operator:
from operator import add map(add,s[::2],s[1::2])
</mode>
Mais bon, c'est histoire de dire, hein...
Méta-MCI
Salut !
On peut aussi remplacer __add__ par une (fonction) lamba :
print map(lambda(x,y): x+y,zip(s[::2],s[1::2]))
@+
MCI
Salut !
On peut aussi remplacer __add__ par une (fonction) lamba :