Di navnîşek Python de hêmanan tevlihev bikin

Dikan

Heke hûn dixwazin hêmanên navnîşek (array) li Python-ê biqelînin (bi korfelaqî birêkûpêk) bikin, modula rasthatî ya pirtûkxaneya standard bikar bînin.

Du fonksîyon hene: shuffle(), ku bi korfelaqî navnîşa orîjînal rêz dike, û nimûne(), ku navnîşek nû ya bi korfelaqî vedigerîne. nimûne() dikare ji bo têl û tîrêjan were bikar anîn.

  • Lîsteya orîjînal tevlihev bikin:random.shuffle()
  • Lîsteyek nû, tevlihev biafirînin.:random.sample()
  • Têl û tîrêjan dihejînin
  • Tovê hejmarê rasthatî rast bikin

Heke hûn dixwazin li şûna rasthatî, an bi rêza berevajî bi rêza hilkişîn an daketinê rêz bikin, li gotara jêrîn binêrin.

Lîsteya orîjînal tevlihev bikin:random.shuffle()

Fonksîyona shuffle() di modula random de dikare bi korfelaqî navnîşa orîjînal rêz bike.

import random

l = list(range(5))
print(l)
# [0, 1, 2, 3, 4]

random.shuffle(l)
print(l)
# [1, 0, 4, 3, 2]

Lîsteyek nû, tevlihev biafirînin.:random.sample()

Nimûneya fonksiyonê() ya di modulek rasthatî de dikare were bikar anîn da ku navnîşek nû ya ku bi korfelaqî hatî veqetandin, bê guheztina navnîşa orîjînal were afirandin.

nimûne() fonksîyonek e ku hêmanek ji navnîşek bi rengek rasthatî hildibijêre û distîne. Argumana yekem lîsteyek e, û argûmana duyemîn jî hejmara hêmanên ku bêne girtin e. Ji bo hûragahiyan li gotara jêrîn binêre.

Ger hejmara hêmanên ku ji hêla nimûne() ve têne hilbijartin, hejmara giştî ya hêmanên di navnîşê de ye, em navnîşek nû ya ku hemî hêmanên ku bi korfelaqî hatine rêz kirin, distînin. Hejmara giştî ya hêmanên di lîsteyê de ji aliyê len ().

Tişta orîjînal nayê guhertin.

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]

Têl û tîrêjan dihejînin

Hêl û tîpên neguhêrbar in, ji ber vê yekê heke hûn random.shuffle() bikar bînin da ku tiştê orîjînal biguhezînin, hûn ê xeletiya jêrîn bistînin.
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

Heke hûn dixwazin rêzek an jî tîpek bihejînin, random.sample() bikar bînin ku tiştek nû diafirîne.

Tewra dema ku xêzek an jî tîpek wekî arguman were destnîşan kirin, random.sample() lîsteyek vedigerîne, ji ber vê yekê pêdivî ye ku ew vegere rêzek an qutiyek.

Di rewşa xêzekê de, ew ê navnîşek tîpan yek bi yek be. Ji bo ku wan dîsa di nav rêzek yekane de bicivînin, rêbaza join() bikar bînin.

sr = ''.join(random.sample(s, len(s)))
print(sr)
# bedca

Ji bo tîpan, tuple() bikar bînin, ku ji navnîşek tûlekek çêdike.

tr = tuple(random.sample(t, len(l)))
print(tr)
# (0, 1, 2, 4, 3)

Tovê hejmarê rasthatî rast bikin

Bi dayîna jimareyek bêkêmasî ji fonksiyona moduleya random seed(), tovê hejmarên rasthatî dikare were rast kirin û çêkerê jimareyên random dikare were destpêkirin.

Piştî destpêkirina bi heman tovê, ew her gav bi heman rengî ji nû ve tê rêz kirin.

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