Python | Pasirinkite atsitiktinę reikšmę iš sąrašo

Pateiktas sąrašas ir mūsų užduotis yra atsitiktinai pasirinkti elementus iš Python sąrašo naudojant įvairias funkcijas. Atsitiktinių skaičių pasirinkimas iš sąrašo kartais gali būti naudojamas kuriant žaidimus, pasirenkant atsitiktinį diapazoną ir pan.

Pavyzdys

  Input:   [2, 3, 4 , 5, 6 ]   Output:   2   Explaination:  The output we are getting is a random value from the input list 

Iš sąrašo pasirinkite atsitiktinę reikšmę

Žemiau pateikiami metodai, kuriuos aptarsime šiame straipsnyje:

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.choice()

Tai random.choice() funkcija skirta gauti atsitiktinę atranką iš sąrašo Python taigi yra labiausiai paplitęs būdas šiai užduočiai gauti atsitiktinį skaičių iš a sąrašą .

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))>

Išvestis:

Original list is : [1, 4, 5, 2, 7] Random selected number is : 1 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.randrange()

The random.randrange() Metodas naudojamas atsitiktiniam skaičiui tam tikrame diapazone sugeneruoti, galime nurodyti diapazoną nuo 0 iki sąrašo ilgio ir gauti indeksą, o tada atitinkamą reikšmę.

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))>

Išvestis:

Original list is : [1, 4, 5, 2, 7] Random selected number is : 7 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.randint()

The random.randint() naudojamas atsitiktiniam skaičiui generuoti, taip pat tai gali būti naudojama generuojant bet kurį skaičių diapazone, o tada naudojant šį skaičių galime rasti atitinkamo indekso reikšmę, kaip ir aukščiau minėta technika. Tačiau jis skiriasi tuo, kad reikalauja 2 privalomų argumentų diapazonui.

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))>

Išvestis:

Original list is : [1, 4, 5, 2, 7] Random selected number is : 4 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.random()

The random.random() Metodas sugeneruoja slankiojo kablelio skaičius nuo 0 iki 1. Taip pat galime gauti sąrašo indekso reikšmę naudodami šią funkciją, padaugindami rezultatą ir tada pervesdami jį į sveikąjį skaičių, kad gautume sveikojo skaičiaus indeksą ir atitinkamą sąrašo vertė.

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))>

Išvestis:

Original list is : [1, 4, 5, 2, 7] Random selected number is : 7 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.sample()

Python turi įmontuotą funkciją, vadinamą Atsitiktinis pavyzdys(). Atsitiktiniame modulyje yra funkcija random.sample(). Jis turi galimybę pasirinkti kelis elementus iš sąrašo.

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> ))>

Išvestis:

Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2] 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami random.choices()

The atsitiktiniai.pasirinkimai funkcija saugoma atsitiktiniame modulyje (). Naudojant random.choices funkciją, patogu pasirinkti daugybę elementų iš sąrašo arba vieną elementą iš tam tikros sekos.

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> ))>

Išvestis:

the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77] 

Pasirinkite atsitiktinę reikšmę iš sąrašo naudodami numpy.random.choice()

The numpy.random.choice() metodas naudojamas atsitiktinei imčiai gauti iš masyvo numpy. Taip pat galima sugeneruoti atsitiktinę imtį iš sąrašo, paverčiant sąrašą į a nelygus masyvas.
Importuokite numpy ir inicijuokite sąrašą. Konvertuoti sąrašą į a nelygus masyvas. Norėdami pasirinkti atsitiktinę reikšmę iš masyvo, naudokite numpy.random.choice() metodą. Spausdinkite pasirinktą vertę.

Pastaba: Įdiegti numpy naudojant 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))>

Išvestis:

Random selected number is : 5 

Laiko sudėtingumas: Laiko sudėtingumas numpy.random.choice() metodas yra O(k), kur k yra generuojamos imties dydis.
Erdvės sudėtingumas: Erdvės sudėtingumas numpy.random.choice() metodas yra O(n), kur n yra masyvo dydis.

Iš sąrašo pasirinkite k atsitiktinę reikšmę

Čia mes sugrupavome visus elementus į porą dydžių 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> ))>

Išvestis:

[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]