J'ai besoin de générer une chaîne avec n caractères en Python. Existe-t-il une réponse à une ligne pour y parvenir avec la bibliothèque Python existante? Par exemple, j'ai besoin d'une chaîne de 10 lettres:
string_val = 'abcdefghij'
J'ai besoin de générer une chaîne avec n caractères en Python. Existe-t-il une réponse à une ligne pour y parvenir avec la bibliothèque Python existante? Par exemple, j'ai besoin d'une chaîne de 10 lettres:
string_val = 'abcdefghij'
Pour répéter simplement la même lettre 10 fois:
string_val = "x" * 10 # gives you "xxxxxxxxxx"
Et si vous voulez quelque chose de plus complexe, comme n
lettres minuscules aléatoires, il ne reste qu'une ligne de code (sans compter les instructions d'importation et en définissant n
):
from random import choice
from string import lowercase
n = 10
string_val = "".join(choice(lowercase) for i in range(n))
Les dix premières lettres minuscules sont string.lowercase[:10]
(si vous avez précédemment importé le module de bibliothèque standard string
, bien sûr ;-).
Autres façons de "créer une chaîne de 10 caractères": 'x'*10
(tous les dix caractères seront en minuscule x
s ;-), ''.join(chr(ord('a')+i) for i in xrange(10))
(les dix premiers lettres minuscules encore), etc, etc ;-).
Pourquoi "une ligne"? Vous pouvez adapter n'importe quoi sur une seule ligne.
En supposant que vous vouliez qu'ils commencent par 'a' et que vous incrémentiez d'un caractère à chaque fois (avec un wrapping> 26), voici une ligne:
>>> mkstring = lambda(x): "".join(map(chr, (ord('a')+(y%26) for y in range(x))))
>>> mkstring(10)
'abcdefghij'
>>> mkstring(30)
'abcdefghijklmnopqrstuvwxyzabcd'
C'est peut-être un peu en dehors de la question, mais pour ceux intéressés par le caractère aléatoire de la chaîne générée, ma réponse serait:
import os
import string
def _pwd_gen(size=16):
chars = string.letters
chars_len = len(chars)
return str().join(chars[int(ord(c) / 256. * chars_len)] for c in os.urandom(size))
Voir ces réponses et la source de random.py
pour plus d'informations.
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.