Méthode sample du module random
La méthode sample du module random
renvoie un échantillon aléatoire d'éléments d'une
séquence. Dans le premier paramètre de la
méthode, nous indiquons la séquence, dans
le deuxième paramètre - le nombre d'éléments
que nous souhaitons sélectionner aléatoirement.
Dans le troisième paramètre nommé optionnel
counts, nous pouvons définir une liste
d'éléments pour la répétition. Cela permet
d'augmenter la probabilité de sélection des éléments
donnés. Veuillez noter que le troisième
paramètre de la méthode n'a été ajouté qu'à
partir de la version Python 3.9.
Syntaxe
import random
random.sample(séquence, nombre_d_éléments, [counts=répétition])
Exemple
Obtenons trois éléments aléatoires d'une liste :
lst = [1, 2, 3, 4, 5]
print(random.sample(lst, 3))
Résultat de l'exécution du code :
[2, 1, 5]
Exemple
Essayons également de prélever un échantillon d'éléments aléatoires d'un tuple :
tpl = (1, 2, 3, 4, 5)
print(random.sample(tpl, 2))
Résultat de l'exécution du code :
[3, 2]
Exemple
Il est également possible de sélectionner des éléments
de la séquence générée par la
fonction range :
print(random.sample(range(0, 10), 3))
Résultat de l'exécution du code :
[0, 8, 9]
Exemple
Prenons maintenant une liste et utilisons le
paramètre counts pour attribuer des répétitions
à chaque élément de la liste. Dans notre
cas, laissons le premier élément se répéter
deux fois, le deuxième - trois, et le troisième - quatre
fois. Il est également nécessaire de spécifier le nom du paramètre
k pour indiquer le nombre d'éléments à sortir :
lst = [1, 2, 3]
print(random.sample(lst, counts=[2, 3, 4], k=3))
Ce code est équivalent au suivant :
lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # liste effective
print(random.sample(lst, 3))
Exemple
Essayons maintenant de prendre des éléments d'un ensemble :
st = {1, 2, 3, 4, 5}
print(random.sample(st, 2))
L'erreur suivante nous sera retournée :
[5, 2]
DeprecationWarning: Sampling from a set deprecated
since Python 3.9 and will be removed in a subsequent version.
print(random.sample(st, 2))
Ceci est dû au fait qu'à partir de la version Python
3.9, la possibilité de
prélever un échantillon d'un ensemble n'est plus prévue.