Générer une chaîne de caractères unique en Python #
Utiliser le uuid.uuid4()
pour générer une chaîne unique, par exemple
uuid.uuid4().hex[:length]
. Le site uuid.uuid4()
génère des identifiants universels
uniques.
import uuid
def generate_unique_string(length):
return uuid.uuid4().hex[:length]
print(generate_unique_string(10))
print(generate_unique_string(15))
print(uuid.uuid4())
print(uuid.uuid4().hex)
print(uuid.uuid4().hex.upper())
Le module uuid intégré
intégré peut être utilisé pour générer des chaînes uniques.
Si tout ce dont vous avez besoin est une chaîne unique, vous devriez utiliser la méthode
méthode uuid.uuid4.
import uuid
print(uuid.uuid4())
print(uuid.uuid4().hex)
print(str(uuid.uuid4())[:5])
print(str(uuid.uuid4())[:5].upper())
L’attribut uuid.hex
renvoie l’UUID sous la forme d’une chaîne hexadécimale de 32 caractères minuscules.
Vous pouvez utiliser l’attribut hex
si vous ne voulez pas de trait d’union dans le résultat.
Si vous devez utiliser le découpage en chaînes pour limiter le résultat à N caractères, utilisez l’attribut str()
pour convertir la classe UUID
en une chaîne de caractères.
Conversion de l’objet UUID
en une chaîne de caractères est nécessaire car les objets UUID ne sont pas
ne sont pas subscriptables. En d’autres termes, ils ne peuvent pas être accédés à un index ou à une tranche.
Vous pouvez également utiliser l’option str.upper()
si vous avez besoin de générer une chaîne unique
unique de caractères majuscules et de chiffres.
Vous pouvez également utiliser la méthode random.choices()
méthode.
Générer une chaîne unique à l’aide de random.choices() #
Pour générer une chaîne unique :
- Utilisez la fonction
string
pour construire une chaîne de caractères. - Utilisez le module
random.choices()
pour sélectionner des caractères aléatoires dans la chaîne. - Utilisez le module
str.join()
pour joindre les caractères sélectionnés de manière aléatoire dans une
chaîne de caractères.
import random
import string
def generate_unique_string(length):
return ''.join(
random.choices(
string.ascii_lowercase +
string.ascii_uppercase +
string.digits,
k=length
)
)
print(generate_unique_string(10))
print(generate_unique_string(15))
Le site
string.ascii_uppercase
renvoie une chaîne contenant les lettres majuscules de A
à Z
.
Le site
string.ascii_lowercase
renvoie une chaîne contenant les lettres minuscules de a
à z
.
import string
print(string.ascii_letters)
print(string.ascii_lowercase)
print(string.ascii_uppercase)
print(string.digits)
La méthode string.digits
renvoie une chaîne de caractères contenant les chiffres de 0
à 9
.
Le site
random.choices
prend une séquence et un k
et renvoie un k
liste de taille
d’éléments choisis dans la séquence.
import random
import string
print(random.choices(string.ascii_uppercase, k=5))
Une fois que nous avons une liste de caractères et de chiffres aléatoires, nous pouvons utiliser la fonction str.join()
pour joindre la liste en une chaîne de caractères.
La méthode str.join
prend un itérable comme argument et renvoie une chaîne de caractères qui est la concaténation
des chaînes de l’itérable.
import random
import string
print(''.join(random.choices(string.ascii_uppercase, k=10)))
La chaîne de caractères sur laquelle la méthode est appelée est utilisée comme séparateur entre les
éléments.
Si vous utilisez une version de Python antérieure à 3.6, utilisez la méthode random.choice()
au lieu de la méthode random.choices()
.
import random
import string
def generate_unique_string(length):
return ''.join(
random.choice(string.ascii_lowercase +
string.ascii_uppercase +
string.digits)
for _ in range(length)
)
print(generate_unique_string(10))
print(generate_unique_string(15))
Nous avons utilisé une expression génératrice pour itérer sur un fichier range
de longueur N.
La classe range est
couramment utilisée pour boucler un nombre spécifique de fois.
print(list(range(2)))
print(list(range(3)))
Les expressions génératrices sont utilisées pour effectuer une opération pour chaque élément ou pour sélectionner un sous-ensemble d’éléments qui remplissent une condition.
À chaque itération, on choisit une lettre au hasard et on renvoie le résultat.
Il suffit d’utiliser la fonction random.choice()
si vous utilisez une version de Python
plus ancienne que la version 3.6
.
L’approche que vous choisissez est une question de préférence personnelle. Le site
random.choices()
est un peu plus flexible, mais l’approche uuid
permet de faire
fait le travail si tout ce dont vous avez besoin est une chaîne unique.