Python | Velg tilfeldig verdi fra en liste
Gitt en liste og vår oppgave er å tilfeldig velge elementer fra listen i Python ved hjelp av ulike funksjoner. Å velge tilfeldige tall fra en liste kan noen ganger brukes mens du bygger spill, velger et tilfeldig område osv.
Eksempel
Input: [2, 3, 4 , 5, 6 ] Output: 2 Explaination: The output we are getting is a random value from the input list
Velg tilfeldig verdi fra en liste
Nedenfor er metodene vi vil dekke i denne artikkelen:
- Ved hjelp av random.choice()
- Ved hjelp av random.randrange()
- Ved hjelp av random.randint()
- Bruker random.random()
- Ved hjelp av tilfeldig utvalg()
- Ved hjelp av random.choices()
- Ved hjelp av numpy.random.choice()
- Velg k tilfeldig verdi fra en liste
Velg en tilfeldig verdi fra en liste ved å bruke random.choice()
Dette random.choice() funksjonen er designet for å få et tilfeldig utvalg fra en liste i Python og derfor er den vanligste metoden for å oppnå denne oppgaven med å hente et tilfeldig tall fra a liste .
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))> |
Produksjon:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 1
Velg en tilfeldig verdi fra en liste ved å bruke random.randrange()
De random.randrange() metoden brukes til å generere et tilfeldig tall i et gitt område, kan vi spesifisere området til å være 0 til lengden på listen og få indeksen, og deretter den tilsvarende verdien.
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))> |
Produksjon:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Velg den tilfeldige verdien fra en liste ved å bruke random.randint()
De random.randint() brukes til å generere det tilfeldige tallet, også dette kan brukes til å generere et hvilket som helst tall i et område, og ved å bruke det tallet kan vi finne verdien ved den tilsvarende indeksen, akkurat som den ovennevnte teknikken. Men det skiller seg ved at det krever 2 obligatoriske argumenter for rekkevidde.
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))> |
Produksjon:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 4
Velg den tilfeldige verdien fra en liste ved å bruke random.random()
De random.random() metoden genererer flyttall i området 0 til 1. Vi kan også få indeksverdien til en liste ved å bruke denne funksjonen ved å multiplisere resultatet og deretter typecaste det til et heltall for å få heltallsindeksen og deretter den tilsvarende listeverdi.
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))> |
Produksjon:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Velg den tilfeldige verdien fra en liste ved å bruke random.sample()
Python har en innebygd funksjon kalt tilfeldig utvalg(). Den tilfeldige modulen inneholder funksjonen random.sample(). Den har muligheten til å velge flere elementer fra en liste.
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> ))> |
Produksjon:
Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2]
Velg den tilfeldige verdien fra en liste ved å bruke random.choices()
De tilfeldige.valg funksjonen er lagret i den tilfeldige modulen(). Å velge flere elementer fra en liste eller et enkelt element fra en bestemt sekvens er praktisk ved hjelp av random.choices-funksjonen.
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> ))> |
Produksjon:
the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77]
Velg den tilfeldige verdien fra en liste ved å bruke numpy.random.choice()
De numpy.random.choice() metoden brukes for å få et tilfeldig utvalg fra en matrise i numpy. Det er også mulig å generere et tilfeldig utvalg fra en liste ved å konvertere listen til en nusset array.
Importer numpy og initialiser listen. Konverter listen til en nusset array. Bruk metoden numpy.random.choice() for å velge en tilfeldig verdi fra matrisen. Skriv ut den valgte verdien.
Merk: Installer numpy med 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))> |
Produksjon:
Random selected number is : 5
Tidskompleksitet: Tidskompleksiteten til numpy.random.choice() metoden er O(k), der k er størrelsen på prøven som skal genereres.
Plass kompleksitet: Romkompleksiteten til numpy.random.choice() metoden er O(n), der n er størrelsen på matrisen.
Velg k tilfeldig verdi fra en liste
Her har vi gruppert alle elementene i et par størrelser 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> ))> |
Produksjon:
[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]