Cara Mengacak Daftar dengan Python

Menyusun daftar ke dalam urutan acak mungkin tampak seperti tugas yang tidak biasa, tetapi ini bisa sangat berguna untuk banyak bisnis. Misalnya, Anda mungkin ingin menetapkan prospek secara acak ke staf penjualan, menugaskan pekerjaan kepada karyawan, atau melakukan undian untuk pelanggan. Apa pun alasannya, Anda dapat menggunakan bahasa pemrograman populer Python untuk mengacak urutan daftar elemen.

Jika Anda membuat daftar acak atau nomor acak untuk tujuan sensitif, seperti pengundian hadiah dengan uang yang dipertaruhkan atau tujuan kriptografi, Anda pasti ingin memastikan bahwa Anda menggunakan generator nomor acak berkualitas tinggi.

Acak Daftar dengan Python

Anda dapat menggunakan Python untuk membuat alat pengacak daftar hanya dalam beberapa baris kode. Python gratis untuk penggunaan komersial dan pribadi dan tersedia untuk semua sistem operasi modern, termasuk Microsoft Windows, macOS, Linux, dan sistem gaya Unix lainnya.

Python 2 dan Python 3, dua versi bahasa pemrograman yang banyak digunakan, mencakup fungsi yang disebut shuffle yang dapat mengacak daftar atau urutan data lainnya. Untuk menggunakan shuffle, impor paket acak Python dengan menambahkan baris impor acak di dekat bagian atas program Anda.

Kemudian, jika Anda memiliki daftar yang disebut x , Anda dapat memanggil random.shuffle (x) agar fungsi acak acak menyusun ulang daftar secara acak.

Perhatikan bahwa fungsi shuffle menggantikan daftar yang ada. Jika Anda ingin menyimpan salinan daftar dalam urutan aslinya, buat salinan daftar sebelum mengacaknya. Anda dapat mengimpor paket salinan Python dan menggunakan metode salinnya untuk melakukannya. Gunakan y = copy.copy (x) untuk membuat salinan daftar x dan tetapkan variabel y untuk merujuknya. Perhatikan bahwa jika Anda menulis y = x , variabel y ditugaskan untuk menunjuk ke daftar yang sama seperti x , dan salinan baru tidak dibuat.

Ambil Elemen Acak

Jika Anda hanya ingin mengambil elemen acak dari daftar dengan Python, Anda juga dapat melakukannya dengan paket acak. Impor paket acak dengan memasukkan impor acak di dekat bagian atas kode Anda.

Untuk memilih satu elemen, gunakan random.choice (x) , di mana x adalah nama daftar Anda. Fungsi mengembalikan satu elemen yang dipilih secara acak dari daftar x . Perhatikan bahwa jika Anda memanggil random.choice beberapa kali, Anda mungkin mendapatkan elemen yang sama dari daftar tersebut beberapa kali kecuali Anda menghapusnya dari daftar di antara panggilan.

Jika Anda ingin mengambil satu set beberapa elemen yang tidak menyertakan elemen yang sama dua kali, gunakan random.sample (x, k) , di mana x adalah daftar dan k adalah jumlah elemen yang Anda inginkan. Jika daftar menyertakan elemen berulang, mereka mungkin diulang dalam sampel acak.

Risiko Dengan Generator Nomor Acak

Tidak semua generator bilangan acak dibuat sama. Dokumentasi Python memperingatkan bahwa pembuat bilangan acak bawaan Python tidak cocok untuk tujuan kriptografi, di mana tingkat keacakan minimum diperlukan untuk membuat pembuat bilangan acak untuk mengenkripsi data dengan sedikit risiko dekripsi pihak ketiga. Jika penting bagi bisnis Anda bahwa daftarnya benar-benar acak dan tidak dapat diprediksi, seperti untuk undian, penting untuk menggunakan generator nomor acak yang benar.

Beberapa subclass dari modul acak Python memberikan peningkatan tingkat keacakan. Pada sistem operasi modern, Anda dapat meminta sistem operasi untuk memberikan data acak dengan kualitas yang dapat digunakan untuk kriptografi. Melalui Python, Anda dapat mengakses data acak ini menggunakan fungsi os.urandom di modul os, atau Anda dapat memanggil random.SystemRandom untuk menghasilkan generator nomor acak yang setara dengan modul acak menggunakan data acak sistem operasi.

Untuk menggunakan ini dengan shuffle, ketik r = random.SystemRandom () untuk menghasilkan generator nomor acak dan kemudian panggil r.shuffle (x) pada daftar x Anda . Fungsi lain, termasuk pilihan dan sampel , juga dapat digunakan dengan generator SystemRandom.

Periksa dokumentasi sistem operasi Anda untuk memahami cara kerja penghasil angka acak dan apakah sesuai dengan kebutuhan Anda. Dalam beberapa kasus, Anda mungkin dapat mengkonfigurasi sistem operasi untuk menggunakan perangkat keras eksternal untuk menghasilkan nomor acak.