பைத்தானில் ஒரு பட்டியலை சீரற்றதாக்குவது எப்படி

ஒரு பட்டியலை சீரற்ற வரிசையில் வைப்பது ஒரு அசாதாரண பணியாகத் தோன்றலாம், ஆனால் இது பல வணிகங்களுக்கு மிகவும் பயனுள்ளதாக இருக்கும். எடுத்துக்காட்டாக, விற்பனையாளர்களுக்கு நீங்கள் தோராயமாக வழிவகைகளை ஒதுக்க விரும்பலாம், ஊழியர்களுக்கு வேலைகளை ஒதுக்கலாம் அல்லது வாடிக்கையாளர்களுக்கு ஒரு சவாரி நடத்தலாம். காரணம் எதுவாக இருந்தாலும், உறுப்புகளின் பட்டியலின் வரிசையை சீரற்றதாக்க பிரபலமான நிரலாக்க மொழியான பைத்தானைப் பயன்படுத்தலாம்.

பணமில்லா பணம் அல்லது கிரிப்டோகிராஃபிக் நோக்கங்களுக்காக பரிசு டிரா போன்ற ஒரு முக்கியமான நோக்கத்திற்காக நீங்கள் சீரற்ற பட்டியல்கள் அல்லது சீரற்ற எண்களை உருவாக்குகிறீர்கள் என்றால், நீங்கள் ஒரு உயர் தரமான சீரற்ற எண் ஜெனரேட்டரைப் பயன்படுத்துகிறீர்கள் என்பதை உறுதிப்படுத்த வேண்டும்.

பைத்தானில் ஒரு பட்டியலை மாற்றவும்

குறியீட்டின் சில வரிகளில் பட்டியல் ரேண்டமைசர் கருவியை உருவாக்க பைத்தானைப் பயன்படுத்தலாம். பைதான் வணிக மற்றும் தனிப்பட்ட பயன்பாட்டிற்கு இலவசம் மற்றும் மைக்ரோசாப்ட் விண்டோஸ், மேகோஸ், லினக்ஸ் மற்றும் பிற யூனிக்ஸ் பாணி அமைப்புகள் உள்ளிட்ட அனைத்து நவீன இயக்க முறைமைகளுக்கும் கிடைக்கிறது.

பரவலான பயன்பாட்டில் நிரலாக்க மொழியின் இரண்டு பதிப்புகள் பைதான் 2 மற்றும் பைதான் 3, எனப்படும் ஒரு செயல்பாடு அடங்கும் கலக்கு இது ஒரு பட்டியலை அல்லது தரவின் மற்றொரு வரிசையை சீரற்றதாக மாற்றும். கலக்கு பயன்படுத்த, வரியைச் சேர்ப்பதன் மூலம் பைதான் சீரற்ற தொகுப்பை இறக்குமதி செய்க சீரற்ற இறக்குமதி உங்கள் திட்டத்தின் மேல் அருகில்.

பின்னர், உங்களிடம் ஒரு பட்டியல் இருந்தால் எக்ஸ், நீங்கள் அழைக்கலாம் random.shuffle (x) சீரற்ற கலக்கு செயல்பாடு பட்டியலை சீரற்ற முறையில் மறுவரிசைப்படுத்த வேண்டும்.

கலக்கு செயல்பாடு ஏற்கனவே இருக்கும் பட்டியலை மாற்றுகிறது என்பதை நினைவில் கொள்க. பட்டியலின் நகலை அதன் அசல் வரிசையில் வைத்திருக்க விரும்பினால், பட்டியலை மாற்றுவதற்கு முன் அதன் நகலை உருவாக்கவும். நீங்கள் பைதான் நகல் தொகுப்பை இறக்குமதி செய்து அதைப் பயன்படுத்தலாம் நகல் அவ்வாறு செய்ய முறை. பயன்படுத்தவும் y = copy.copy (x) பட்டியலின் நகலை உருவாக்க எக்ஸ் மற்றும் மாறி ஒதுக்க y அதைக் குறிக்க. நீங்கள் எழுதினால் கவனிக்கவும் y = x, மாறி y அதே பட்டியலில் சுட்டிக்காட்ட ஒதுக்கப்பட்டுள்ளது எக்ஸ் செய்கிறது, புதிய நகல் உருவாக்கப்படவில்லை.

ஒரு சீரற்ற உறுப்பைப் பிடிக்கவும்

பைத்தானில் உள்ள ஒரு பட்டியலிலிருந்து ஒரு சீரற்ற உறுப்பை மட்டுமே நீங்கள் பெற விரும்பினால், சீரற்ற தொகுப்பிலும் இதைச் செய்யலாம். சேர்ப்பதன் மூலம் சீரற்ற தொகுப்பை இறக்குமதி செய்க சீரற்ற இறக்குமதி உங்கள் குறியீட்டின் மேலே.

ஒற்றை உறுப்பு தேர்வு செய்ய, பயன்படுத்தவும் random.choice (x), எங்கே எக்ஸ் என்பது உங்கள் பட்டியலின் பெயர். செயல்பாடு பட்டியலிலிருந்து ஒற்றை, தோராயமாக தேர்ந்தெடுக்கப்பட்ட உறுப்பை வழங்குகிறது எக்ஸ். நீங்கள் அழைத்தால் கவனிக்கவும் random.choice பல முறை, அழைப்புகளுக்கு இடையில் உள்ள பட்டியலிலிருந்து நீக்காவிட்டால், பட்டியலின் ஒரே உறுப்பை பல முறை பெறலாம்.

ஒரே உறுப்பை இரண்டு முறை சேர்க்காத பல கூறுகளின் தொகுப்பை நீங்கள் கைப்பற்ற விரும்பினால், பயன்படுத்தவும் random.sample (x, k), எங்கே எக்ஸ் பட்டியல் மற்றும் கே நீங்கள் விரும்பும் உறுப்புகளின் எண்ணிக்கை. ஒரு பட்டியலில் மீண்டும் மீண்டும் கூறுகள் இருந்தால், அவை சீரற்ற மாதிரியில் மீண்டும் மீண்டும் செய்யப்படலாம்.

சீரற்ற எண் ஜெனரேட்டர்களுடன் அபாயங்கள்

எல்லா சீரற்ற எண் ஜெனரேட்டர்களும் சமமாக உருவாக்கப்படவில்லை. மூன்றாம் தரப்பு மறைகுறியாக்கத்தின் சிறிய ஆபத்துடன் தரவை குறியாக்க சீரற்ற எண் ஜெனரேட்டர்களை உருவாக்க பைத்தானின் உள்ளமைக்கப்பட்ட சீரற்ற எண் ஜெனரேட்டர் கிரிப்டோகிராஃபிக் நோக்கங்களுக்காக பொருந்தாது என்று பைதான் ஆவணங்கள் எச்சரிக்கின்றன. பட்டியல் உண்மையிலேயே சீரற்றது மற்றும் கணிக்க முடியாதது என்பது உங்கள் வணிகத்திற்கு முக்கியமானது என்றால், ஒரு ரேஃபிள் வரைதல் போன்றவை, சரியான சீரற்ற எண் ஜெனரேட்டரைப் பயன்படுத்துவது முக்கியம்.

பைதான் சீரற்ற தொகுதியின் சில துணைப்பிரிவுகள் சீரற்ற தன்மையை அதிகரித்தன. நவீன இயக்க முறைமைகளில், குறியாக்கவியலுக்குப் பயன்படுத்தக்கூடிய தரத்தின் சீரற்ற தரவை வழங்க இயக்க முறைமையைக் கேட்கலாம். பைதான் மூலம், இந்த சீரற்ற தரவை நீங்கள் செயல்பாட்டைப் பயன்படுத்தி அணுகலாம் os.urandom os தொகுதியில், அல்லது நீங்கள் அழைக்கலாம் random.SystemRandom இயக்க முறைமை சீரற்ற தரவைப் பயன்படுத்தி சீரற்ற தொகுதிக்கு சமமான சீரற்ற எண் ஜெனரேட்டரை உருவாக்க.

கலக்குடன் இதைப் பயன்படுத்த, தட்டச்சு செய்க r = random.SystemRandom () சீரற்ற எண் ஜெனரேட்டரை உருவாக்க பின்னர் அழைக்கவும் r.shuffle (x) உங்கள் பட்டியலில் எக்ஸ். உள்ளிட்ட பிற செயல்பாடுகள் தேர்வு மற்றும் மாதிரி, SystemRandom ஜெனரேட்டருடன் பயன்படுத்தலாம்.

உங்கள் இயக்க முறைமையின் ஆவணங்களை சரிபார்த்து, அதன் சீரற்ற எண் ஜெனரேட்டர் எவ்வாறு இயங்குகிறது மற்றும் உங்கள் தேவைகளுக்கு ஏற்றது என்றால். சில சந்தர்ப்பங்களில், சீரற்ற எண்களை உருவாக்க வெளிப்புற வன்பொருள் சாதனத்தைப் பயன்படுத்த இயக்க முறைமையை நீங்கள் கட்டமைக்க முடியும்.