பைத்தானில் உள்ள பட்டியலில் உள்ள உறுப்புகளை கலக்கவும்

வணிக

பைத்தானில் உள்ள ஒரு பட்டியலின் (வரிசை) கூறுகளை கலக்க (தோராயமாக வரிசைப்படுத்த) விரும்பினால், நிலையான நூலகத்தின் சீரற்ற தொகுதியைப் பயன்படுத்தவும்.

இரண்டு செயல்பாடுகள் உள்ளன: 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]

சரங்கள் மற்றும் டூப்பிள்களை கலக்கவும்

சரங்கள் மற்றும் டூப்பிள்கள் மாறாதவை, எனவே அசல் பொருளை மாற்ற 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() ஒரு பட்டியலை வழங்கும், எனவே அதை மீண்டும் ஒரு சரம் அல்லது tuple க்கு செயலாக்குவது அவசியம்.

ஒரு சரத்தின் விஷயத்தில், அது எழுத்துக்களின் பட்டியலாக இருக்கும். அவற்றை மீண்டும் ஒற்றை சரமாக இணைக்க, join() முறையைப் பயன்படுத்தவும்.

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

Tuples க்கு, tuple() ஐப் பயன்படுத்தவும், இது ஒரு பட்டியலிலிருந்து tuple ஐ உருவாக்குகிறது.

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