J'ai un morceau de code qui va prendre une chaîne et la répéter de telle sorte que la longueur de la chaîne soit x.Optimisation: Répétition de chaîne Python
>>> import math
>>> def repeat(data, length):
return (data * int(math.ceil(float(length)/len(data))))[:length]
>>> repeat("Hello World", 22)
'Hello WorldHello World'
>>> repeat("Hello World", 20)
'Hello WorldHello Wor'
Y a-t-il un moyen de l'optimiser? J'ai besoin que cette opération soit rapide, car elle sera beaucoup utilisée. Notez que cela doit également fonctionner avec les listes.
Je me demandais juste. Avez-vous confirmé que 'repeat (" Hello World ", 22)' est plus rapide que "Hello World" * 22' – Wolph
@WoLpH: Il résout un problème légèrement différent. Il veut que "Hello World" (ou n'importe quelle chaîne) soit répété autant de fois que nécessaire, mais ne dépasse pas N caractères de longueur. Pas la même chose que 'string * n'. –
@Brian: en effet, dans ce cas, ma question est invalide :) Je ne vois aucune option d'optimisation beaucoup plus loin. Simplement l'évaluation comparative devrait suffire. – Wolph