Yen sampeyan pengin ngacak (acak ngurutake) unsur dhaftar (larik) ing Python, nggunakake modul acak perpustakaan standar.
Ana rong fungsi: acak (), kang acak ngurutake dhaftar asli, lan sampel (), kang ngasilake dhaftar acak diurutake anyar. sampel () bisa digunakake kanggo strings lan tuple.
- Acak dhaptar asli:
random.shuffle()
- Gawe dhaptar anyar sing diacak.:
random.sample()
- Acak senar lan tupel
- Ndandani wiji nomer acak
Yen sampeyan pengin ngurutake kanthi urutan munggah utawa mudhun tinimbang acak, utawa kanthi urutan mbalikke, deleng artikel ing ngisor iki.
- Artikel sing gegandhengan:Ngurutake dhaftar ing Python: prabédan antarane diurutake lan diurutake
Acak dhaptar asli:random.shuffle()
Fungsi acak () ing modul acak bisa acak ngurutake dhaftar asli.
import random
l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]
random.shuffle(l)
print(l)
# [1, 0, 4, 3, 2]
Gawe dhaptar anyar sing diacak.:random.sample()
Sampel fungsi () ing modul acak bisa digunakake kanggo nggawe dhaftar anyar sing acak diurutake, tanpa ngganti dhaftar asli.
sampel () punika fungsi sing acak milih lan retrieves unsur saka dhaftar. Argumen pisanan minangka dhaptar, lan argumen kapindho yaiku jumlah unsur sing bakal dijupuk. Deleng artikel ing ngisor iki kanggo rincian.
- Artikel sing gegandhengan:Pilih unsur kanthi acak saka dhaptar ing Python:
choice()
,sample()
,choices()
Yen nomer unsur sing bakal dipilih dening sampel () punika nomer total unsur ing dhaftar, kita njaluk dhaftar anyar karo kabeh unsur acak diurutake. Jumlah total unsur ing dhaftar dijupuk dening len ().
Objek asli ora bakal diganti.
l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]
lr = random.sample(l, len(l))
print(lr)
# [0, 3, 1, 4, 2]
print(l)
# [0, 1, 2, 3, 4]
Acak senar lan tupel
Strings lan tuples immutable, supaya yen sampeyan nggunakake random.shuffle () kanggo ngganti obyek asli, sampeyan bakal njaluk kesalahan ing ngisor iki.TypeError
s = 'abcde'
# random.shuffle(s)
# TypeError: 'str' object does not support item assignment
t = tuple(range(5))
print(t)
# (0, 1, 2, 3, 4)
# random.shuffle(t)
# TypeError: 'tuple' object does not support item assignment
Yen sampeyan pengin ngacak senar utawa tuple, nggunakake random.sample (), kang nggawe obyek anyar.
Malah nalika senar utawa tuple kasebut minangka bantahan, random.sample () bali dhaftar, supaya iku perlu kanggo proses maneh kanggo senar utawa tuple.
Ing kasus senar, bakal dadi dhaptar karakter siji-siji. Kanggo nggabungake maneh dadi senar siji, gunakake metode gabung ().
sr = ''.join(random.sample(s, len(s)))
print(sr)
# bedca
Kanggo tuple, gunakake tuple (), sing nggawe tuple saka dhaptar.
tr = tuple(random.sample(t, len(l)))
print(tr)
# (0, 1, 2, 4, 3)
Ndandani wiji nomer acak
Kanthi menehi integer kasepakatan kanggo wiji fungsi modul acak (), wiji nomer acak bisa didandani lan generator nomer acak bisa initialized.
Sawise initialization karo wiji padha, iku tansah reordered ing cara sing padha.
l = list(range(5))
random.seed(0)
random.shuffle(l)
print(l)
# [2, 1, 0, 4, 3]
l = list(range(5))
random.seed(0)
random.shuffle(l)
print(l)
# [2, 1, 0, 4, 3]