Générer une chaîne unique en Python

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 :

  1. Utilisez la fonction string pour construire une chaîne de caractères.
  2. Utilisez le module random.choices() pour sélectionner des caractères aléatoires dans la chaîne.
  3. 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.

Laisser un commentaire