random.choice() și random.choices() în Python

Numere aleatorii (random) Python 3.0+ (choices: 3.6+)

Alege aleator un element dintr-o listă, sau k elemente, cu ponderi opționale.

Sintaxă
random.choice(secventa)
random.choices(populatie, weights=None, *, cum_weights=None, k=1)

Ce face random.choice() și random.choices()

choice(lista) returnează un singur element ales la întâmplare. Pe o listă goală aruncă IndexError.

choices(lista, k=n) returnează o listă de n alegeri cu revenire: același element poate apărea de mai multe ori. Cu weights dai fiecărui element o pondere (șansă relativă). Pentru alegeri fără repetare, folosește random.sample().

Parametri

Parametru Descriere
secventa / populatie Lista din care se alege.
weights Opțional. Ponderile elementelor.
k Numărul de alegeri.

Ce returnează

choice: un element. choices: o listă.

Exemple

Exemplul 1: Alegeri simple și ponderate

import random
random.seed(42)
print(random.choice(["Iași", "Cluj", "Timișoara", "Brașov"]))
print(random.choices(["cap", "pajură"], k=5))
premii = ["nimic", "voucher", "telefon"]
print(random.choices(premii, weights=[90, 9, 1], k=10))

Rezultat

Iași
['cap', 'cap', 'cap', 'pajură', 'pajură']
['nimic', 'nimic', 'nimic', 'nimic', 'nimic', 'nimic', 'nimic', 'nimic', 'nimic', 'nimic']

Greșeli frecvente

  • Folosești choices pentru o extragere la loterie: același număr poate fi extras de două ori. Folosește sample().

Comenzi înrudite