Acak unsur ing dhaftar ing Python

Bisnis

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.

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.

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]
Copied title and URL