Python | Selectați o valoare aleatorie dintr-o listă
Dată o listă, sarcina noastră este să selectăm aleatoriu elemente din listă în Python folosind diverse funcții. Selectarea numerelor aleatorii dintr-o listă poate fi folosită uneori în timp ce construiți jocuri, alegeți un interval aleator etc.
Exemplu
Input: [2, 3, 4 , 5, 6 ] Output: 2 Explaination: The output we are getting is a random value from the input list
Selectați valoarea aleatorie dintr-o listă
Mai jos sunt metodele pe care le vom acoperi în acest articol:
- Folosind random.choice()
- Folosind random.randrange()
- Folosind random.randint()
- Folosind random.random()
- Folosind random.sample()
- Folosind random.choices()
- Folosind numpy.random.choice()
- Selectați k valoare aleatorie dintr-o listă
Selectați o valoare aleatorie dintr-o listă folosind random.choice()
Acest random.choice() funcția este concepută pentru a obține o eșantionare aleatorie dintr-o listă în Piton și, prin urmare, este cea mai comună metodă de a realiza această sarcină de a prelua un număr aleatoriu de la a listă .
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.choice() to> # get a random number> random_num> => random.choice(test_list)> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
Ieșire:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 1
Selectați o valoare aleatorie dintr-o listă folosind random.randrange()
The random.randrange() metoda este folosită pentru a genera un număr aleator într-un interval dat, putem specifica intervalul să fie 0 la lungimea listei și să obținem indexul și apoi valoarea corespunzătoare.
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.randrange() to> # get a random number> rand_idx> => random.randrange(> len> (test_list))> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
Ieșire:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Selectați valoarea aleatoare dintr-o listă folosind random.randint()
The random.randint() este folosit pentru a genera un număr aleator, de asemenea, acesta poate fi folosit pentru a genera orice număr dintr-un interval, iar apoi folosind acel număr, putem găsi valoarea la indexul corespunzător, la fel ca tehnica menționată mai sus. Dar diferă prin faptul că necesită 2 argumente obligatorii pentru gamă.
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.randint() to> # get a random number> rand_idx> => random.randint(> 0> ,> len> (test_list)> -> 1> )> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
Ieșire:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 4
Selectați valoarea aleatoare dintr-o listă folosind random.random()
The random.random() metoda generează numerele în virgulă mobilă în intervalul de la 0 la 1. De asemenea, putem obține valoarea indexului unei liste utilizând această funcție prin înmulțirea rezultatului și apoi tiparând-o într-un număr întreg, astfel încât să obținem indicele întreg și apoi indicele corespunzător valoare de listă.
Python3
import> random> # initializing list> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> # printing original list> print> (> 'Original list is : '> +> str> (test_list))> # using random.random() to> # get a random number> rand_idx> => int> (random.random()> *> len> (test_list))> random_num> => test_list[rand_idx]> # printing random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
Ieșire:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Selectați valoarea aleatoare dintr-o listă folosind random.sample()
Python are o funcție încorporată numită random.sample(). Modulul aleatoriu conține funcția random.sample(). Are capacitatea de a alege mai multe articole dintr-o listă.
Python3
import> random> test_list> => [> 1> ,> 4> ,> 5> ,> 2> ,> 7> ]> print> (> 'Original list is : '> +> str> (test_list))> print> (> 'Random element is :'> , random.sample(test_list,> 5> ))> |
Ieșire:
Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2]
Selectați valoarea aleatoare dintr-o listă folosind random.choices()
The aleatorii.alegeri funcția este stocată în modulul aleatoriu (). Selectarea mai multor elemente dintr-o listă sau a unui singur articol dintr-o anumită secvență este utilă cu ajutorul funcției random.choices.
Python3
import> random> test_list> => [> 11> ,> 44> ,> 55> ,> 22> ,> 77> ]> print> (> 'Original list is : '> +> str> (test_list))> print> (> 'Random element is :'> , random.choices(test_list, k> => 4> ))> |
Ieșire:
the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77]
Selectați valoarea aleatoare dintr-o listă folosind numpy.random.choice()
The numpy.random.choice() metoda este utilizată pentru obținerea unui eșantion aleatoriu dintr-o matrice în numpy. De asemenea, este posibil să generați un eșantion aleatoriu dintr-o listă prin conversia listei în a numpy matrice.
Importați numpy și inițializați lista. Convertiți lista în a numpy matrice. Utilizați metoda numpy.random.choice() pentru a selecta o valoare aleatorie din matrice. Tipăriți valoarea selectată.
Notă: Instalați numpy folosind pip install numpy
Python3
import> numpy as np> # Initializing list> test_list> => [> 2> ,> 3> ,> 4> ,> 5> ,> 6> ]> # Converting list to numpy array> test_array> => np.array(test_list)> # Using numpy.random.choice() to get a random number> random_num> => np.random.choice(test_array)> # Printing the random number> print> (> 'Random selected number is : '> +> str> (random_num))> |
Ieșire:
Random selected number is : 5
Complexitatea timpului: Complexitatea temporală a numpy.random.choice() metoda este O(k), unde k este dimensiunea eșantionului de generat.
Complexitatea spațiului: Complexitatea spațială a numpy.random.choice() metoda este O(n), unde n este dimensiunea matricei.
Selectați k valoare aleatorie dintr-o listă
Aici am grupat toate elementele într-o pereche de mărimi k.
Python3
import> random> def> select_random_Ns(l, k):> > random.shuffle(l)> > res> => []> > for> i> in> range> (> 0> ,> len> (l), k):> > res.append(l[i:i> +> k])> > return> res> > l> => [> 'G'> ,> 'E'> ,> 'E'> ,> 'K'> ,> 'S'> ,> 'F'> ,> 'O'> ,> 'R'> ,> 'G'> ,> 'E'> ,> 'E'> ,> 'K'> ,> 'S'> ]> print> (select_random_Ns(l,> 3> ))> |
Ieșire:
[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]