253 votes

Répétez la chaîne à une certaine longueur

Ce qui est un moyen efficace de répéter une chaîne à une certaine longueur ? Par exemple :``

Voici mon code actuel :

Y a-t-il une meilleure façon (plus Pythonique) de le faire ? Peut-être à l’aide de la compréhension de liste ?

745voto

Zack Points 44583

Une chaîne répété un nombre fixe de fois est une opération intégrée :

Alors, simplement calculer le nombre de répétitions, que vous avez besoin pour atteindre la longueur que vous voulez et mettre ça sur la partie droite. Vous aurez alors besoin de bien régler à la bonne longueur.

(Il semble que c’est ce que l’autre réponse, mais un peu plus d’explication semble utile.)

82voto

Jason Scheirer Points 704
def repeat_to_length(string_to_expand, length):
   return (string_to_expand * ((length/len(string_to_expand))+1))[:length]

71voto

Helen K Points 31

C’est assez Pythonique :

37voto

pillmuncher Points 4726
def rep(s, m):
    a, b = divmod(m, len(s))
    return s * a + s[:b]

15voto

KennyTM Points 232647
from itertools import cycle, islice
def srepeat(string, n):
   return ''.join(islice(cycle(string), n))

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X