Comment sélectionner un élément au hasard dans une liste en Python
-
Utilisez le module
random
pour sélectionner un élément aléatoire dans une liste en Python -
Utilisez le module
secrets
pour sélectionner un élément aléatoire à partir d’une liste en Python -
Utilisez le module
NumPy
pour sélectionner un élément aléatoire à partir d’une liste en Python
Ce tutoriel vous montre comment sélectionner un élément aléatoire dans une liste en Python. Il existe plusieurs moyens simples pour y parvenir, qui impliquent tous l’importation de modules Python.
Ce tutoriel couvre les solutions qui nécessitent les modules random
, secrets
et NumPy
.
Notez que toutes ces solutions qui seront présentées utiliseront des générateurs de nombres pseudo-aléatoires (PRNG).
Utilisez le module random
pour sélectionner un élément aléatoire dans une liste en Python
Le module le plus couramment utilisé pour la randomisation est le module random
. Ce module met en œuvre des fonctions utilitaires pseudo-aléatoires pour soutenir les opérations impliquant la randomisation.
Disons que nous voulons choisir un nom aléatoire dans une liste comme s’il s’agissait d’un bulletin de vote.
["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
Pour choisir un nom aléatoire dans cette liste, nous utiliserons random.choice()
, qui sélectionnera un élément parmi les données disponibles qui sont données.
import random
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return random.choice(names)
print("The name selected is: ", selectRandom(names))
Le résultat sera bien sûr variable et aléatoire. Il peut donc s’agir de n’importe lequel des six noms qui sont stockés dans la variable names
.
Utilisez le module secrets
pour sélectionner un élément aléatoire à partir d’une liste en Python
Le module secrets
est essentiellement utilisé dans le même but que le module random
. Cependant, secrets
fournit une méthode cryptographiquement sécurisée d’implémentation du PRNG.
Dans les applications de la vie réelle comme le stockage des mots de passe, l’authentification, le cryptage et le décryptage, et les jetons. Le secrets
est beaucoup plus sûr que le random
, car il ne convient qu’aux simulations ou aux opérations qui ne traitent pas de données sensibles.
Dans ce problème, les deux modules fournissent la même valeur, car nous ne manipulons pas de données sensibles et nous le faisons pour la simulation.
Nous utiliserons la même liste de names
pour cet exemple. secrets
possède également une version de la fonction choice()
qui produit la même sortie de variable que random.choice()
.
import secrets
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return secrets.choice(names)
print("The name selected is: ", selectRandom(names))
Utilisez le module NumPy
pour sélectionner un élément aléatoire à partir d’une liste en Python
Le module NumPy
a également des fonctions utilitaires pour la randomisation et a quelques outils expansifs comme arguments pour sa fonction choice()
.
Encore une fois, nous utiliserons la même liste names
pour démontrer la fonction numpy.random.choice()
.
import numpy
names = ["John", "Juan", "Jane", "Jack", "Jill", "Jean"]
def selectRandom(names):
return numpy.random.choice(names)
print("The name selected is: ", selectRandom(names))
La fonction retournera la même sortie de variable que les deux autres modules ont produite.
NumPy
fournit également d’autres arguments pour que choice()
génère plusieurs sorties sous forme de liste.
Le second argument accepte une valeur entière pour déterminer le nombre d’éléments aléatoires à retourner. Disons que nous voulons renvoyer 4 éléments aléatoires de la liste names
.
def selectRandom(names):
return numpy.random.choice(names, 4)
print("The names selected are: ", selectRandom(names))
Exemple de sortie :
The names selected are: ['John', 'Jill', 'Jill', 'Jill']
Il est probable que le même élément sera répété plus d’une fois dans le résultat randomisé.
Si vous préférez que les éléments du résultat soient uniques, nous pouvons passer un troisième argument boolean
, permettant un échantillonnage aléatoire sans remplacement.
def selectRandom(names):
return numpy.random.choice(names, 4, False)
Production :
The names selected are: ['Jill', 'John', 'Jack', 'Jean']
La fonction produira toujours une liste unique sans aucun élément en double.
Un inconvénient majeur si nous ajoutons le troisième argument est le temps d’exécution de la fonction puisqu’elle exécute une tâche supplémentaire pour vérifier les doublons et les remplacer par un élément qui n’existe pas encore dans les résultats.
En résumé, la sélection d’éléments aléatoires dans une liste Python peut être réalisée en utilisant l’un de ces trois modules : random
, secrets
, ou NumPy
. Chacun d’eux a ses avantages et ses inconvénients.
Si vous voulez avoir une méthode PRNG sécurisée cryptographiquement, alors secrets
est le meilleur module pour cela. Si votre objectif est uniquement la simulation ou la manipulation de données non sensibles, utilisez soit random
ou NumPy
. Si vous voulez plus qu’un seul résultat aléatoire, utilisez NumPy
.
Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.
LinkedInArticle connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python