Python | Vyberte náhodnou hodnotu ze seznamu
Daný seznam a naším úkolem je náhodně vybrat prvky ze seznamu v Pythonu pomocí různých funkcí. Výběr náhodných čísel ze seznamu lze někdy použít při sestavování her, výběru náhodného rozsahu atd.
Příklad
Input: [2, 3, 4 , 5, 6 ] Output: 2 Explaination: The output we are getting is a random value from the input list
Vyberte náhodnou hodnotu ze seznamu
Níže jsou uvedeny metody, které pokryjeme v tomto článku:
- Použitím random.choice()
- Použitím random.randrange()
- Použitím random.randint()
- Použití random.random()
- Použitím náhodný vzorek()
- Použitím random.choices()
- Použitím numpy.random.choice()
- Vyberte k náhodné hodnoty ze seznamu
Vyberte náhodnou hodnotu ze seznamu pomocí random.choice()
Tento random.choice() Funkce je navržena pro získání náhodného vzorkování ze seznamu Krajta a proto je nejběžnější metodou k dosažení tohoto úkolu získat náhodné číslo z a seznam .
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))> |
Výstup:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 1
Vyberte náhodnou hodnotu ze seznamu pomocí random.randrange()
The random.randrange() metoda se používá ke generování náhodného čísla v daném rozsahu, můžeme zadat rozsah od 0 do délky seznamu a získat index a poté odpovídající hodnotu.
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))> |
Výstup:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Vyberte náhodnou hodnotu ze seznamu pomocí random.randint()
The random.randint() se používá ke generování náhodného čísla, také toto lze použít ke generování libovolného čísla v rozsahu a pomocí tohoto čísla pak můžeme najít hodnotu na odpovídajícím indexu, stejně jako výše zmíněná technika. Liší se ale tím, že vyžaduje 2 povinné argumenty pro rozsah.
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))> |
Výstup:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 4
Vyberte náhodnou hodnotu ze seznamu pomocí random.random()
The random.random() metoda generuje čísla s plovoucí desetinnou čárkou v rozsahu 0 až 1. Hodnotu indexu seznamu můžeme také získat pomocí této funkce vynásobením výsledku a jeho přetypováním na celé číslo, abychom získali index celého čísla a poté odpovídající hodnota seznamu.
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))> |
Výstup:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Vyberte náhodnou hodnotu ze seznamu pomocí random.sample()
Python má vestavěnou funkci tzv náhodný vzorek(). Modul random obsahuje funkci random.sample(). Má možnost vybrat si více položek ze seznamu.
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> ))> |
Výstup:
Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2]
Vyberte náhodnou hodnotu ze seznamu pomocí random.choices()
The náhodné.volby funkce je uložena v náhodném modulu(). Výběr mnoha položek ze seznamu nebo jedné položky z určité sekvence je užitečný s pomocí funkce 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> ))> |
Výstup:
the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77]
Vyberte náhodnou hodnotu ze seznamu pomocí numpy.random.choice()
The numpy.random.choice() metoda se používá pro získání náhodného vzorku z pole v numpy. Je také možné vygenerovat náhodný vzorek ze seznamu převedením seznamu na a nemotorný pole.
Importujte numpy a inicializujte seznam. Převeďte seznam na a nemotorný pole. Použijte metodu numpy.random.choice() k výběru náhodné hodnoty z pole. Vytiskněte vybranou hodnotu.
Poznámka: Nainstalujte numpy pomocí 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))> |
Výstup:
Random selected number is : 5
Časová náročnost: Časová složitost numpy.random.choice() metoda je O(k), kde k je velikost vzorku, který má být generován.
Prostorová složitost: Prostorová složitost numpy.random.choice() metoda je O(n), kde n je velikost pole.
Vyberte k náhodné hodnoty ze seznamu
Zde jsme seskupili všechny prvky do dvojice velikostí 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> ))> |
Výstup:
[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]