Pythona | Wybierz losową wartość z listy
Mając daną listę, naszym zadaniem jest losowe wybieranie elementów z listy w Pythonie za pomocą różnych funkcji. Wybieranie losowych liczb z listy może być czasami wykorzystywane podczas tworzenia gier, wybierania losowego zakresu itp.
Przykład
Input: [2, 3, 4 , 5, 6 ] Output: 2 Explaination: The output we are getting is a random value from the input list
Wybierz losową wartość z listy
Poniżej znajdują się metody, które omówimy w tym artykule:
- Za pomocą losowy.wybór()
- Za pomocą losowy.losowy()
- Za pomocą losowy.randint()
- Używanie random.random()
- Za pomocą losowa próbka()
- Za pomocą losowe.wybory()
- Za pomocą numpy.random.choice()
- Wybierz k losowej wartości z listy
Wybierz losową wartość z listy za pomocą funkcji random.choice()
Ten losowy.wybór() Funkcja jest przeznaczona do pobierania losowego próbkowania z listy Pyton i dlatego jest najczęstszą metodą osiągnięcia tego zadania polegającego na pobraniu liczby losowej z a lista .
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))> |
Wyjście:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 1
Wybierz losową wartość z listy za pomocą funkcji random.randrange()
The losowy.losowy() metoda służy do generowania liczby losowej z danego zakresu, możemy określić zakres na 0 do długości listy i uzyskać indeks, a następnie odpowiednią wartość.
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))> |
Wyjście:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Wybierz losową wartość z listy za pomocą funkcji random.randint()
The losowy.randint() służy do generowania liczby losowej, można go również wykorzystać do wygenerowania dowolnej liczby z zakresu, a następnie używając tej liczby możemy znaleźć wartość w odpowiednim indeksie, podobnie jak w przypadku powyższej techniki. Różni się jednak tym, że wymaga 2 obowiązkowych argumentów dla zakresu.
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))> |
Wyjście:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 4
Wybierz losową wartość z listy za pomocą funkcji random.random()
The losowe.losowe() generuje liczby zmiennoprzecinkowe z zakresu od 0 do 1. Za pomocą tej funkcji możemy również uzyskać wartość indeksu listy, mnożąc wynik, a następnie rzutując go na liczbę całkowitą, aby otrzymać indeks całkowity, a następnie odpowiadającą mu wartość wartość listy.
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))> |
Wyjście:
Original list is : [1, 4, 5, 2, 7] Random selected number is : 7
Wybierz losową wartość z listy za pomocą funkcji random.sample()
Python ma wbudowaną funkcję o nazwie losowa próbka(). Moduł losowy zawiera funkcję random.sample(). Posiada możliwość wyboru wielu pozycji z listy.
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> ))> |
Wyjście:
Original list is : [1, 4, 5, 2, 7] Random element is : [7, 4, 1, 5, 2]
Wybierz losową wartość z listy za pomocą funkcji random.choices()
The losowe.wybory funkcja jest przechowywana w module losowym (). Wybranie wielu pozycji z listy lub pojedynczego elementu z określonej sekwencji jest wygodne dzięki funkcji 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> ))> |
Wyjście:
the t is : [11, 44, 55, 22, 77] Random element is : [11, 11, 44, 77]
Wybierz losową wartość z listy za pomocą numpy.random.choice()
The numpy.random.choice() metoda służy do pobierania losowej próbki z tablicy w numpy. Możliwe jest również wygenerowanie losowej próbki z listy poprzez konwersję listy do formatu a tępy szyk.
Zaimportuj numpy i zainicjuj listę. Przekonwertuj listę na tępy szyk. Użyj metody numpy.random.choice(), aby wybrać losową wartość z tablicy. Wydrukuj wybraną wartość.
Notatka: Zainstaluj numpy za 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))> |
Wyjście:
Random selected number is : 5
Złożoność czasowa: Złożoność czasowa numpy.random.choice() metoda to O(k), gdzie k jest wielkością generowanej próbki.
Złożoność przestrzeni: Złożoność przestrzenna numpy.random.choice() metoda to O(n), gdzie n jest rozmiarem tablicy.
Wybierz k losowej wartości z listy
Tutaj pogrupowaliśmy wszystkie elementy w parę rozmiarów 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> ))> |
Wyjście:
[['G', 'G', 'R'], ['K', 'K', 'E'], ['O', 'F', 'E'], ['S', 'E', 'S'], ['E']]