Daftar Referensi Python
random.choices() memilih beberapa item acak dengan pengembalian. Item yang sama boleh muncul berkali-kali dan peluang tiap item dapat diberi bobot.
Catatan: contoh memakai random.seed(42) agar output dapat diverifikasi. Hapus seed untuk hasil yang berubah setiap kali dijalankan.
Sintaks
random.choices(
population, weights=None, *, cum_weights=None, k=1
)
Parameter
| Parameter | Wajib? | Keterangan |
|---|---|---|
population |
Ya | Sequence sumber pilihan |
weights |
Tidak | Bobot relatif setiap item, default sama rata |
cum_weights |
Tidak | Bobot kumulatif; keyword-only dan tidak boleh dipakai bersama weights |
k |
Tidak | Jumlah pilihan; keyword-only, default 1 |
Nilai balik: list sepanjang k. Item dapat muncul lebih dari sekali.
Contoh
import random
random.seed(42)
print(random.choices(["A", "B", "C"], k=5))
Output:
['B', 'A', 'A', 'A', 'C']
Contoh Lainnya
Memberi bobot peluang
import random
random.seed(42)
hasil = random.choices(
["gagal", "berhasil"], weights=[1, 9], k=5
)
print(hasil)
Output:
['berhasil', 'gagal', 'berhasil', 'berhasil', 'berhasil']
Memakai bobot kumulatif
import random
random.seed(42)
hasil = random.choices(
["kecil", "sedang", "besar"],
cum_weights=[2, 5, 10],
k=4,
)
print(hasil)
Output:
['besar', 'kecil', 'sedang', 'sedang']
Item yang sama boleh terpilih berulang
import random
random.seed(42)
print(random.choices("AB", k=6))
Output:
['B', 'A', 'A', 'A', 'B', 'B']
Kesalahan Umum
choices()memakai pengembalian, sehingga duplikat adalah perilaku normal.- Memberikan
weightsdancum_weightssekaligus menghasilkanTypeError. - Semua bobot bernilai nol menghasilkan
ValueError. - Population kosong menghasilkan
IndexError; panjang bobot juga harus sama dengan population.
Pelajari Lebih Lanjut
- Referensi: random.sample() · random.choice() · random.seed()
- Buku Belajar Python untuk Pemula: Bab 16 dan proyek game di Bab 20
