Comment sélectionner aléatoirement des éléments d'une liste en python ?

Published: 27 février 2017

Updated: 10 janvier 2024

DMCA.com Protection Status

Introduction

Lorsque vous travaillez avec Python, vous pouvez souvent rencontrer des situations où vous devez sélectionner des éléments aléatoires d'une liste. Cela peut être utile dans de nombreuses applications, notamment les jeux, l'analyse statistique et l'apprentissage automatique.

Le langage de programmation Python nous offre des outils qui facilitent la sélection aléatoire d'éléments d'une liste. Dans cette article, nous explorerons comment sélectionner aléatoirement des éléments d'une liste en python .

Créer une liste en Python.

Pour créer une liste en Python, nous utilisons des crochets "[" "]" pour encadrer les éléments de la liste. Par exemple,

l = ['a','b','c','d','e','f']

Sélectionnez aléatoirement un élément d'une liste en utilisant random.choice()

Pour sélectionner aléatoirement un élément d'une liste, vous pouvez utiliser la fonction random.choice(). Cette solution offre un moyen simple et efficace d'accomplir la tâche.

import random

random.choice(l)

Par exemple, le code mentionné fournira :

'c'

Création d'une sélection d'éléments aléatoires à partir d'une autre liste.

Une façon de générer une liste d'éléments aléatoires est d'utiliser une compréhension de liste.

r = [random.choice(l) for i in range(2)]

Par exemple, voici quelques exemples de retours.

['a', 'f']

Voici un autre exemple où 10 éléments sont sélectionnés aléatoirement à partir d'une liste :

r = [random.choice(l) for i in range(10)]

donne par exemple

['e', 'd', 'b', 'b', 'c', 'b', 'a', 'a', 'b', 'c']

Sélectionnez toujours de manière aléatoire les mêmes éléments.

Note : Pour obtenir systématiquement le même résultat, vous pouvez utiliser random.seed()

random.seed(42)

[random.choice(l) for i in range(10)]

donne par exemple

['f', 'a', 'a', 'f', 'c', 'b', 'b', 'b', 'f', 'a']

Suppression des éléments en double

Pour éliminer les éléments en double de votre liste, vous pouvez suivre une approche simple. Tout d'abord, convertissez votre liste en un ensemble ('set'), qui supprime automatiquement les doublons. Ensuite, si nécessaire, convertissez l'ensemble en une liste. Ce processus garantit efficacement que votre liste ne contient que des éléments uniques.

l = ['a', 'a', 'a', 'b', 'c','d','e','f']

l = list(set(l))

donne par exemple

['b', 'c', 'f', 'e', 'd', 'a']

Sélectionnez aléatoirement un élément à partir d'une liste en utilisant random.sample()

Pour sélectionner aléatoirement un élément d'une liste, vous pouvez également utiliser la fonction random.sample(). L'avantage réside dans la génération d'un échantillon sans remplacement, ce qui implique que chaque élément est sélectionné une seule fois :

random.sample(l,n)

"n" désigne la taille de l'échantillon (où n est inférieur ou égal à la longueur de la liste). Par exemple:

l = ['a','b','c','d','e','f']

random.sample(l,2)

donne par exemple

['c', 'e']

Veuillez noter que si la valeur de 'n' dépasse le nombre total d'éléments dans la liste, un message d'erreur s'affichera : "ValueError: Sample larger than population or is negative". En revanche, si 'n' est égal au nombre d'éléments dans la liste, cela équivaut à mélanger aléatoirement tous les éléments.

Sélectionnez aléatoirement un élément d'une liste en utilisant random.shuffle()

Une autre approche consiste à mélanger aléatoirement notre liste, puis à la découper par la suite.

l = ['a','b','c','d','e','f']

random.shuffle(l)

n = 2

l[:n]

donne par exemple

['d', 'a']

Sélectionnez aléatoirement un élément d'une liste en utilisant Numpy.

L'une des nombreuses fonctions de numpy est random.choice(), qui nous permet de sélectionner aléatoirement des éléments à partir d'une liste.

Pour utiliser random.choice(), nous devons d'abord importer numpy dans notre environnement Python. Nous pouvons le faire en utilisant le code suivant :

import numpy as np

Ensuite, nous pouvons créer une liste d'éléments à partir desquels nous souhaitons effectuer une sélection aléatoire. Par exemple, supposons que nous ayons une liste de couleurs :

l = ['a','b','c','d','e','f']

Maintenant, nous pouvons utiliser random.choice() pour sélectionner une couleur aléatoire de cette liste. Nous devons simplement passer la liste en tant qu'argument dans la fonction, comme ceci :

np.random.choice(l)

Cela renverra un seul élément de la liste, choisi au hasard. Nous pouvons également spécifier le nombre d'éléments que nous souhaitons sélectionner en utilisant le paramètre size dans la fonction. Par exemple, si nous voulons sélectionner trois couleurs aléatoires de notre liste, nous pouvons le faire :

np.random.choice(l, size=3)

Cela renverra un tableau numpy avec trois éléments sélectionnés au hasard dans la liste.

array(['c', 'e', 'c'], dtype='<U1')

Veuillez noter que la sortie mentionnée ci-dessus est un tableau. Si vous préférez une liste à la place:

list( np.random.choice(l, size=3) )

donne par exemple

['b', 'e', 'c']

Références

Liens Site
random — Generate pseudo-random numbers docs.python.org
numpy.random.choice numpy.org