Python හි ලැයිස්තුවක ඇති මූලද්‍රව්‍ය කලවම් කරන්න

ව්යාපාරික

ඔබට පයිතන් හි ඇති ලැයිස්තුවක (අරාවක) මූලද්‍රව්‍ය මාරු කිරීමට (අහඹු ලෙස වර්ග කිරීමට) අවශ්‍ය නම්, සම්මත පුස්තකාලයේ අහඹු මොඩියුලය භාවිතා කරන්න.

ශ්‍රිත දෙකක් ඇත: shuffle(), මුල් ලැයිස්තුව අහඹු ලෙස වර්ග කරයි, සහ නියැදි(), නව අහඹු ලෙස වර්ග කළ ලැයිස්තුවක් ලබා දෙයි. නියැදිය () නූල් සහ ටියුපල් සඳහා භාවිතා කළ හැක.

  • මුල් ලැයිස්තුව කලවම් කරන්න:random.shuffle()
  • නව, කලවම් කළ ලැයිස්තුවක් උත්පාදනය කරන්න.:random.sample()
  • නූල් සහ ටියුපල් ෂෆල් කරන්න
  • අහඹු අංක බීජය සවි කරන්න

ඔබට අහඹු ලෙස හෝ ප්‍රතිලෝම අනුපිළිවෙල වෙනුවට ආරෝහණ හෝ අවරෝහණ අනුපිළිවෙලින් වර්ග කිරීමට අවශ්‍ය නම්, පහත ලිපිය බලන්න.

මුල් ලැයිස්තුව කලවම් කරන්න:random.shuffle()

අහඹු මොඩියුලයේ ඇති shuffle() ශ්‍රිතයට මුල් ලැයිස්තුව අහඹු ලෙස වර්ග කළ හැක.

import random

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

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

නව, කලවම් කළ ලැයිස්තුවක් උත්පාදනය කරන්න.:random.sample()

සසම්භාවී මොඩියුලයේ ඇති ශ්‍රිත නියැදිය() මුල් ලැයිස්තුව වෙනස් නොකර අහඹු ලෙස වර්ග කරන ලද නව ලැයිස්තුවක් සෑදීමට භාවිතා කළ හැක.

නියැදි() යනු අහඹු ලෙස ලැයිස්තුවකින් මූලද්‍රව්‍යයක් තෝරා නැවත ලබා ගන්නා ශ්‍රිතයකි. පළමු තර්කය ලැයිස්තුවක් වන අතර, දෙවන තර්කය නැවත ලබා ගත යුතු මූලද්රව්ය සංඛ්යාව වේ. විස්තර සඳහා පහත ලිපිය බලන්න.

නියැදි() මගින් තෝරාගත යුතු මූලද්‍රව්‍ය ගණන ලැයිස්තුවේ ඇති මුලද්‍රව්‍ය ගණන නම්, අහඹු ලෙස වර්ග කළ සියලුම මූලද්‍රව්‍ය සහිත නව ලැයිස්තුවක් අපට ලැබේ. ලැයිස්තුවේ ඇති මුලද්‍රව්‍ය ගණන len() මගින් ලබා ගනී.

මුල් වස්තුව වෙනස් නොවේ.

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]

නූල් සහ ටියුපල් ෂෆල් කරන්න

Strings සහ tuples වෙනස් කළ නොහැක, එබැවින් ඔබ මුල් වස්තුව වෙනස් කිරීමට random.shuffle() භාවිතා කරන්නේ නම්, ඔබට පහත දෝෂය ලැබෙනු ඇත.
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

ඔබට තන්තුවක් හෝ ටියුපල් මාරු කිරීමට අවශ්‍ය නම්, නව වස්තුවක් සාදන random.sample() භාවිතා කරන්න.

තන්තුවක් හෝ ටියුපල් තර්කයක් ලෙස සඳහන් කර ඇති විට පවා, random.sample() ලැයිස්තුවක් ආපසු ලබා දෙයි, එබැවින් එය නැවත තන්තුවකට හෝ ටියුපල් වෙත සැකසීමට අවශ්‍ය වේ.

තන්තුවක නම්, එය එකින් එක අක්ෂර ලැයිස්තුවක් වනු ඇත. ඒවා නැවත තනි තන්තුවකට ඒකාබද්ධ කිරීමට, join() ක්‍රමය භාවිතා කරන්න.

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

ටියුපල් සඳහා, ටියුපල් () භාවිතා කරන්න, එය ලැයිස්තුවකින් ටුපල් එකක් සාදනු ඇත.

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

අහඹු අංක බීජය සවි කරන්න

සසම්භාවී මොඩියුලයේ ශ්‍රිත බීජයට අත්තනෝමතික පූර්ණ සංඛ්‍යාවක් ලබා දීමෙන්, සසම්භාවී සංඛ්‍යා බීජය සවි කළ හැකි අතර සසම්භාවී සංඛ්‍යා උත්පාදක යන්ත්‍රය ආරම්භ කළ හැකිය.

එකම බීජය සමඟ ආරම්භ කිරීමෙන් පසුව, එය සෑම විටම එකම ආකාරයෙන් නැවත සකස් කරනු ලැබේ.

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