Com aleatoritzar una llista a Python

Posar una llista en ordre aleatori pot semblar una tasca inusual, però pot ser molt útil per a moltes empreses. Per exemple, és possible que vulgueu assignar a l’atzar contactes a venedors, assignar feines a empleats o fer un sorteig per als clients. Sigui quina sigui la raó, podeu utilitzar el popular llenguatge de programació Python per aleatoritzar l'ordre d'una llista d'elements.

Si esteu generant llistes aleatòries o números aleatoris amb un propòsit sensible, com ara un sorteig amb diners en joc o fins criptogràfics, voldreu assegurar-vos que utilitzeu un generador de números aleatoris d’alta qualitat.

Barregeu una llista a Python

Podeu utilitzar Python per crear una eina d’aleatorització de llistes en poques línies de codi. Python és gratuït per a ús comercial i personal i està disponible per a tots els sistemes operatius moderns, inclosos Microsoft Windows, macOS, Linux i altres sistemes d’estil Unix.

Python 2 i Python 3, les dues versions del llenguatge de programació d’ús generalitzat, inclouen una funció anomenada remenar que pot aleatoritzar una llista o una altra seqüència de dades. Per utilitzar la reproducció aleatòria, importeu el paquet aleatori de Python afegint la línia importació aleatòria a prop de la part superior del programa.

Llavors, si teniu una llista anomenada x, podeu trucar random.shuffle (x) perquè la funció de barreja aleatòria reordeni la llista de forma aleatòria.

Tingueu en compte que la funció de barreja reemplaça la llista existent. Si voleu conservar una còpia de la llista en el seu ordre original, feu-ne una abans de barrejar-la. Podeu importar el paquet de còpia Python i fer-ne servir còpia mètode per fer-ho. Ús y = copy.copy (x) per crear una còpia de la llista x i assignar variable y per referir-s'hi. Tingueu en compte que si escriviu y = x, variable y està assignat per apuntar a la mateixa llista que x i no es crea una còpia nova.

Agafa un element aleatori

Si només voleu agafar un element aleatori d'una llista de Python, també podeu fer-ho amb el paquet aleatori. Importeu el paquet aleatori incloent-hi importació aleatòria a prop de la part superior del codi.

Per triar un sol element, utilitzeu random.choice (x), on x és el nom de la vostra llista. La funció retorna un element de la llista seleccionat aleatòriament x. Tingueu en compte que si truca random.choice diverses vegades, podeu obtenir el mateix element de la llista diverses vegades tret que l’esborreu de la llista entre trucades.

Si voleu agafar un conjunt de diversos elements que no inclouen el mateix element dues vegades, utilitzeu random.sample (x, k), on x és la llista i k és el nombre d'elements que voleu. Si una llista inclou elements repetits, es poden repetir a la mostra aleatòria.

Riscos amb generadors de números aleatoris

No tots els generadors de números aleatoris es creen iguals. La documentació de Python adverteix que el generador de números aleatoris integrat de Python no és adequat per a fins criptogràfics, on es requereix un nivell mínim d’atzar real per crear generadors de números aleatoris per xifrar dades amb poc risc de desxifratge de tercers. Si és important per a la vostra empresa que la llista sigui realment aleatòria i imprevisible, com ara per a un sorteig de sortejos, és important utilitzar el generador de números aleatoris adequat.

Algunes subclasses del mòdul aleatori de Python proporcionen nivells aleatoris augmentats. En els sistemes operatius moderns, podeu demanar al sistema operatiu que proporcioni dades aleatòries d’una qualitat utilitzable per a la criptografia. Mitjançant Python, podeu accedir a aquestes dades aleatòries mitjançant la funció os.urandom al mòdul os, o podeu trucar random.SystemRandom per generar un generador de nombres aleatoris equivalent al mòdul aleatori mitjançant les dades aleatòries del sistema operatiu.

Per utilitzar-ho amb la reproducció aleatòria, escriviu r = random.SystemRandom () per generar el generador de números aleatoris i després trucar r.shuffle (x) a la vostra llista x. Altres funcions, inclosa elecció i mostra, també es pot utilitzar amb el generador SystemRandom.

Consulteu la documentació del vostre sistema operatiu per entendre com funciona el seu generador de números aleatoris i si és adequat per a les vostres necessitats. En alguns casos, és possible que pugueu configurar el sistema operatiu per utilitzar un dispositiu de maquinari extern per generar números aleatoris.