Paano Mag-Randomize ng Listahan sa Python

Ang paglalagay ng isang listahan sa random na pagkakasunud-sunod ay maaaring parang isang hindi pangkaraniwang gawain, ngunit maaari itong maging lubos na kapaki-pakinabang para sa maraming mga negosyo. Halimbawa, baka gusto mong random na magtalaga ng mga lead sa mga salespeople, magtalaga ng mga trabaho sa mga empleyado o magsagawa ng raffle para sa mga customer. Anuman ang dahilan, maaari mong gamitin ang sikat na programa ng wika na Python upang i-randomize ang pagkakasunud-sunod ng isang listahan ng mga elemento.

Kung bumubuo ka ng mga random na listahan o mga random na numero para sa isang sensitibong layunin, tulad ng isang draw ng premyo na may perang taya o cryptographic na layunin, gugustuhin mong tiyakin na gumagamit ka ng isang de-kalidad na random na generator ng numero.

I-shuffle ang isang List sa Python

Maaari mong gamitin ang Python upang bumuo ng isang listahan ng tool ng randomizer sa ilang mga linya lamang ng code. Ang Python ay libre para sa parehong komersyal at personal na paggamit at magagamit para sa lahat ng mga modernong operating system, kabilang ang Microsoft Windows, macOS, Linux at iba pang mga sistemang istilo ng Unix.

Ang Python 2 at Python 3, ang dalawang bersyon ng wika ng pagprograma na laganap, ginagamit ang isang pagpapaandar na tinatawag pag-shuffle na maaaring i-randomize ang isang listahan o ibang pagkakasunud-sunod ng data. Upang magamit ang shuffle, i-import ang Python random package sa pamamagitan ng pagdaragdag ng linya mag-import ng random malapit sa tuktok ng iyong programa.

Kung gayon, kung mayroon kang isang listahan na tinawag x, pwede kang tumawag random.shuffle (x) upang magkaroon ng random na pagpapaandar na pag-andar ng shuffle muling ayusin ang listahan sa isang randomized na paraan.

Tandaan na ang pagpapaandar ng shuffle ay pinapalitan ang mayroon nang listahan. Kung nais mong panatilihin ang isang kopya ng listahan sa orihinal na pagkakasunud-sunod, gumawa ng isang kopya ng listahan bago i-shuffle ito. Maaari mong i-import ang Python copy package at gamitin ito kopya paraan upang magawa ito. Gamitin y = copy.copy (x) upang lumikha ng isang kopya ng listahan x at magtalaga ng variable y upang mag-refer dito. Tandaan na kung sumulat ka y = x, variable y ay itinalaga upang ituro ang parehong listahan bilang x ay, at isang bagong kopya ay hindi nilikha.

Grab isang Random Element

Kung nais mo lamang grab ng isang random na elemento mula sa isang listahan sa Python, magagawa mo rin ito sa random na pakete rin. I-import ang random na pakete sa pamamagitan ng pagsasama mag-import ng random malapit sa tuktok ng iyong code.

Upang pumili ng isang solong elemento, gamitin random.choice (x), saan x ang pangalan ng iyong listahan. Ang pagpapaandar ay nagbabalik ng isang solong, sapalarang napiling elemento mula sa listahan x. Tandaan na kung tatawag ka sapalaran.pipilian maraming beses, maaari kang makakuha ng parehong elemento ng listahan ng maraming beses maliban kung tatanggalin mo ito mula sa listahan sa pagitan ng mga tawag.

Kung nais mong grab ng isang hanay ng maraming mga elemento na hindi kasama ang parehong elemento nang dalawang beses, gamitin random. halimbawa (x, k), saan x ay ang listahan at k ay ang bilang ng mga elemento na gusto mo. Kung may kasamang paulit-ulit na mga elemento ang isang listahan, maaaring maulit ito sa na-random na sample.

Mga Panganib Sa Mga Random Number Generator

Hindi lahat ng mga generator ng random na numero ay nilikha pantay. Binalaan ng dokumentasyon ng Python na ang built-in na random na generator ng Python ay hindi angkop para sa mga layunin ng cryptographic, kung saan kinakailangan ang isang minimum na antas ng aktwal na pagiging random upang lumikha ng mga random number generator upang ma-encrypt ang data na may maliit na panganib ng pag-decrypt ng third-party. Kung mahalaga sa iyong negosyo na ang listahan ay tunay na random at hindi mahuhulaan, tulad ng para sa pagguhit ng raffle, mahalagang gamitin ang tamang generator ng random na numero.

Ang ilang mga subclass ng Python random module ay nagbibigay ng mas mataas na antas ng pagiging random. Sa mga modernong operating system, maaari mong hilingin sa operating system na magbigay ng random na data ng isang kalidad na magagamit para sa cryptography. Sa pamamagitan ng Python, maaari mong ma-access ang random data na ito gamit ang pagpapaandar os.urandom sa os module, o maaari kang tumawag random.SystemRandom upang makabuo ng isang random number generator na katumbas ng random module gamit ang operating system na random data.

Upang magamit ito sa shuffle, uri r = random.SystemRandom () upang makabuo ng random number generator at pagkatapos ay tumawag r.shuffle (x) sa iyong listahan x. Iba pang mga pagpapaandar, kabilang ang pagpipilian at sampol, Maaari ding gamitin sa generator ng SystemRandom.

Suriin ang dokumentasyon ng iyong operating system upang maunawaan kung paano gumagana ang random generator ng numero at kung angkop ito para sa iyong mga pangangailangan. Sa ilang mga kaso, maaari mong mai-configure ang operating system upang magamit ang isang panlabas na aparato ng hardware upang makabuo ng mga random na numero.