Comment puis-je supprimer tous les espaces d'une chaîne et faire en minuscule tous les caractères en python? P>
Aussi, puis-je ajouter cette opération au prototype de chaîne comme je pouvais en JavaScript? P>
4 Réponses :
''.join(c.lower() for c in s if not c.isspace()) No. Python is not Ruby.
Regex est-il quelque chose qui est utilisé moins en python?
Les expressions régulières sont ... généralement non requises.
@DUTROWLLC, ils ne sont généralement pas nécessaires, mais il y a des moments où ils sont indispensables.
Si vous avez besoin d'une vitesse, ce n'est pas le moyen d'aller, utilisez la solution de John Machin ci-dessous. Sur 250 000 itérations à l'aide du temps imparti, cette fonction a enregistré cette fonction au 2.14721894264, vs 0.402789115906 à l'aide de la solution de jointure Split.
var = '' .join (C.Lower () pour C en var sinon c.isspace ())
>>> ''.join( map(str.lower, string.split() ) ) 'abcdefg'
Votre solution de join Split est toujours beaucoup plus lente que la réponse de John Machin, l'a enregistré à 0,733391046524 pour 250 000 représentants à l'aide de TimeIt, vs 0.413959026337S pour sa solution. Aller avec le plus rapide!
Voici une solution utilisant une expression régulière:
p> p> code>
Cela semble être le plus lent du groupe, 0.809034109116 sur 250 000 itérations VS Solution de John Machin à 0,411396980286S. La carte était également plus rapide que celle-ci à 0.582627058029.
+1. Enfin, quelqu'un a répondu à la question de l'OPS (partiellement)! Oui, le regex n'est pas la bonne approche de ce problème, mais elle vaut toujours la peine de savoir. Une bonne réponse devrait être, ce n'est pas nécessaire, mais voici comment vous le feriez ...
Que diriez-vous d'une réponse simple forte> simple forte>? No [python 2.7.1] p> mappe code>, no pour code> boucles, ...
+1, en effet le plus rapide que j'ai vu jusqu'à présent. Confirmé avec le module TimeIt à l'aide de itérations 250K 0.403948068619 à l'aide de Split, 0.585318088531 à l'aide de la carte. Merci!