60 of 151 menu

Método sample do módulo random

O método sample do módulo random retorna uma amostra aleatória de elementos de uma sequência. No primeiro parâmetro do método, indicamos a sequência, no segundo parâmetro - a quantidade de elementos, que queremos selecionar aleatoriamente.

No terceiro parâmetro nomeado opcional counts podemos definir uma lista de elementos para repetição. Isso permite aumentar a probabilidade de amostragem de determinados elementos. Observe que o terceiro parâmetro do método foi adicionado apenas a partir da versão Python 3.9.

Sintaxe

import random random.sample(sequência, quantidade de elementos, [counts=repetição])

Exemplo

Vamos obter três elementos aleatórios de uma lista:

lst = [1, 2, 3, 4, 5] print(random.sample(lst, 3))

Resultado da execução do código:

[2, 1, 5]

Exemplo

Vamos também tentar obter uma amostra de elementos aleatórios de uma tupla:

tpl = (1, 2, 3, 4, 5) print(random.sample(tpl, 2))

Resultado da execução do código:

[3, 2]

Exemplo

Também é possível selecionar elementos de uma sequência gerada pela função range:

print(random.sample(range(0, 10), 3))

Resultado da execução do código:

[0, 8, 9]

Exemplo

Agora vamos pegar uma lista e usar o parâmetro counts para atribuir repetições para cada elemento da lista. No nosso caso, deixe o primeiro elemento repetir duas vezes, o segundo - três, e o terceiro - quatro vezes. Também é necessário especificar o nome do parâmetro k para a saída da quantidade de elementos:

lst = [1, 2, 3] print(random.sample(lst, counts=[2, 3, 4], k=3))

Este código é equivalente ao seguinte:

lst = [1, 1, 2, 2, 2, 3, 3, 3, 3] # lista efetivamente assim print(random.sample(lst, 3))

Exemplo

Agora vamos tentar obter elementos de um conjunto:

st = {1, 2, 3, 4, 5} print(random.sample(st, 2))

O seguinte erro será retornado:

[5, 2] DeprecationWarning: Amostragem de um conjunto descontinuada desde Python 3.9 e será removida em uma versão subsequente. print(random.sample(st, 2))

Isso ocorre porque a partir da versão Python 3.9 não há suporte para obter amostras de um conjunto.

Veja também

  • método choice do módulo random,
    que retorna um elemento aleatório de uma sequência
  • método random do módulo random,
    que retorna um número pseudoaleatório
bydeenesfrptru