Como Randomizar uma Lista em Python

Colocar uma lista em ordem aleatória pode parecer uma tarefa incomum, mas pode ser bastante útil para muitas empresas. Por exemplo, você pode desejar atribuir leads aleatoriamente a vendedores, atribuir empregos a funcionários ou realizar um sorteio para clientes. Seja qual for o motivo, você pode usar a popular linguagem de programação Python para randomizar a ordem de uma lista de elementos.

Se você estiver gerando listas aleatórias ou números aleatórios para um propósito sensível, como um sorteio com dinheiro em jogo ou propósitos criptográficos, você vai querer ter certeza de estar usando um gerador de números aleatórios de alta qualidade.

Embaralhar uma lista em Python

Você pode usar Python para construir uma ferramenta aleatória de lista em apenas algumas linhas de código. Python é gratuito para uso comercial e pessoal e está disponível para todos os sistemas operacionais modernos, incluindo Microsoft Windows, macOS, Linux e outros sistemas estilo Unix.

Python 2 e Python 3, as duas versões da linguagem de programação em uso generalizado, incluem uma função chamada embaralhar que pode tornar aleatória uma lista ou outra sequência de dados. Para usar o shuffle, importe o pacote aleatório do Python adicionando a linha importar aleatório perto do topo do seu programa.

Então, se você tiver uma lista chamada x, você pode ligar random.shuffle (x) para que a função de embaralhamento aleatório reordene a lista de maneira aleatória.

Observe que a função shuffle substitui a lista existente. Se quiser manter uma cópia da lista em sua ordem original, faça uma cópia da lista antes de embaralhá-la. Você pode importar o pacote de cópia do Python e usar seu cópia de método para o fazer. Usar y = copy.copy (x) para criar uma cópia da lista x e atribuir variável y para se referir a ele. Observe que se você escrever y = x, variável y é atribuído para apontar para a mesma lista que x faz, e uma nova cópia não é criada.

Pegue um Elemento Aleatório

Se você deseja apenas obter um elemento aleatório de uma lista em Python, também pode fazer isso com o pacote aleatório. Importe o pacote aleatório incluindo importar aleatório perto do topo do seu código.

Para escolher um único elemento, use random.choice (x), Onde x é o nome da sua lista. A função retorna um único elemento selecionado aleatoriamente da lista x. Observe que se você ligar random.choice várias vezes, você pode obter o mesmo elemento da lista várias vezes, a menos que o exclua da lista entre as chamadas.

Se você quiser pegar um conjunto de vários elementos que não incluem o mesmo elemento duas vezes, use random.sample (x, k), Onde x é a lista e k é o número de elementos que você deseja. Se uma lista inclui elementos repetidos, eles podem ser repetidos na amostra aleatória.

Riscos com geradores de números aleatórios

Nem todos os geradores de números aleatórios são criados iguais. A documentação do Python avisa que o gerador de números aleatórios integrado do Python não é adequado para fins criptográficos, em que um nível mínimo de aleatoriedade real é necessário para criar geradores de números aleatórios para criptografar dados com pouco risco de descriptografia de terceiros. Se é importante para sua empresa que a lista seja realmente aleatória e imprevisível, como para um sorteio de rifa, é importante usar o gerador de números aleatórios certo.

Algumas subclasses do módulo aleatório Python fornecem níveis aumentados de aleatoriedade. Em sistemas operacionais modernos, você pode solicitar que o sistema operacional forneça dados aleatórios de qualidade utilizável para criptografia. Por meio do Python, você pode acessar esses dados aleatórios usando a função os.urandom no módulo de sistema operacional, ou você pode chamar random.SystemRandom para gerar um gerador de número aleatório equivalente ao módulo aleatório usando os dados aleatórios do sistema operacional.

Para usar isso com shuffle, digite r = random.SystemRandom () para gerar o gerador de número aleatório e, em seguida, chamar r.shuffle (x) na sua lista x. Outras funções, incluindo escolha e amostra, também pode ser usado com o gerador SystemRandom.

Verifique a documentação do seu sistema operacional para entender como funciona o gerador de números aleatórios e se ele é adequado para suas necessidades. Em alguns casos, você pode configurar o sistema operacional para usar um dispositivo de hardware externo para gerar números aleatórios.