பைத்தானில் தரவை திறம்பட ஒழுங்கமைத்தல்
ஒரு குறிப்பிட்ட விசையின் மதிப்பின்படி அகராதிகளின் பட்டியலை வரிசைப்படுத்துவது பைதான் நிரலாக்கத்தில் பொதுவான பணியாகும். சிறந்த வாசிப்புத்திறன் அல்லது பகுப்பாய்விற்காக ஆர்டர் செய்யப்பட வேண்டிய தரவுத் தொகுப்புகளைக் கையாளும் போது இந்த செயல்முறை மிகவும் பயனுள்ளதாக இருக்கும்.
இந்த கட்டுரையில், பைத்தானில் உள்ள அகராதியின் மதிப்பின் அடிப்படையில் அகராதிகளின் பட்டியலை எவ்வாறு வரிசைப்படுத்துவது என்பதை ஆராய்வோம். ஒரு நடைமுறை உதாரணத்தைப் பயன்படுத்தி, இந்த பணியை எவ்வாறு திறம்பட மற்றும் திறமையாக அடைவது என்பதை நாங்கள் காண்பிப்போம்.
கட்டளை | விளக்கம் |
---|---|
sorted() | புதிய வரிசைப்படுத்தப்பட்ட பட்டியலை வழங்கும், குறிப்பிட்ட விசையின் மூலம் மீண்டும் செய்யக்கூடியவற்றை வரிசைப்படுத்துகிறது. |
lambda | வரிசைப்படுத்துவதற்கான விசையாகப் பயன்படுத்த அநாமதேய செயல்பாட்டை உருவாக்குகிறது. |
itemgetter() | ஒவ்வொரு உறுப்பிலிருந்தும் ஒரு குறிப்பிட்ட உருப்படியை மீண்டும் வரிசைப்படுத்துவதற்குப் பயன்படுத்தப்படும். |
sort() | குறிப்பிட்ட விசையின்படி பட்டியலை வரிசைப்படுத்துகிறது. |
from operator import itemgetter | விசையைப் பிரித்தெடுப்பதற்காக ஆபரேட்டர் தொகுதியிலிருந்து உருப்படி பெறுபவர் செயல்பாட்டை இறக்குமதி செய்கிறது. |
key | ஒப்பீடு செய்வதற்கு முன் ஒவ்வொரு பட்டியல் உறுப்பிலும் அழைக்கப்பட வேண்டிய செயல்பாட்டைக் குறிப்பிடுவதற்கு அளவுருவானது மற்றும் வரிசைப்படுத்தப்பட்டது. |
பைத்தானில் வரிசையாக்க வழிமுறைகளைப் புரிந்துகொள்வது
முதல் ஸ்கிரிப்ட் பயன்படுத்துகிறது sorted() ஒரு இணைந்து செயல்பாடு lambda அகராதிகளின் பட்டியலை வரிசைப்படுத்துவதற்கான செயல்பாடு. தி sorted() செயல்பாடு என்பது ஒரு உள்ளமைக்கப்பட்ட பைதான் செயல்பாடாகும், இது மீண்டும் செய்யக்கூடிய உருப்படிகளிலிருந்து புதிய வரிசைப்படுத்தப்பட்ட பட்டியலை வழங்குகிறது. ஒரு பயன்படுத்துவதன் மூலம் lambda முக்கிய அளவுருவாக செயல்படுகிறது, நாம் வரிசைப்படுத்த விரும்பும் அகராதி விசையை ('பெயர்') குறிப்பிடலாம். லாம்ப்டா செயல்பாடு என்பது ஒரு அநாமதேய செயல்பாடு ஆகும், இது பெரும்பாலும் குறுகிய கால செயல்பாடுகளுக்குப் பயன்படுத்தப்படுகிறது, இது இந்த வரிசையாக்கப் பணிக்கு ஏற்றதாக அமைகிறது. அசல் பட்டியலை மாற்றாமல் தரவை வரிசைப்படுத்த விரைவான மற்றும் படிக்கக்கூடிய வழி தேவைப்படும்போது இந்த முறை மிகவும் பயனுள்ளதாக இருக்கும்.
இரண்டாவது ஸ்கிரிப்ட், தி itemgetter() இருந்து செயல்பாடு operator அகராதிகளின் பட்டியலை வரிசைப்படுத்த தொகுதி. தி itemgetter() செயல்பாடு ஒவ்வொரு அகராதியிலிருந்தும் ஒரு குறிப்பிட்ட உருப்படியைப் பிரித்தெடுக்கிறது, அதை வரிசையாக்க விசையாகப் பயன்படுத்த அனுமதிக்கிறது. லாம்ப்டா செயல்பாட்டைப் பயன்படுத்துவதை ஒப்பிடும் போது இந்த முறை மிகவும் திறமையாகவும் தூய்மையாகவும் இருக்கும், குறிப்பாக மிகவும் சிக்கலான தரவு கட்டமைப்புகளுக்கு. தி from operator import itemgetter கட்டளை இறக்குமதி செய்கிறது itemgetter() செயல்பாடு, இது பின்னர் விசையாக பயன்படுத்தப்படுகிறது sorted() குறிப்பிட்ட அகராதி விசை ('பெயர்') மூலம் பட்டியலை வரிசைப்படுத்தும் செயல்பாடு.
இடத்தில் வரிசைப்படுத்துதல் மற்றும் முக்கிய அளவுரு பயன்பாடு
மூன்றாவது ஸ்கிரிப்ட் அதன் பயன்பாட்டை நிரூபிக்கிறது sort() முறை, இது பட்டியலை இடத்தில் வரிசைப்படுத்தி, அசல் பட்டியலை மாற்றுகிறது. பட்டியலின் அசல் வரிசையை நாம் பாதுகாக்க வேண்டிய அவசியம் இல்லாதபோது இந்த முறை பயனுள்ளதாக இருக்கும். போன்றது sorted() செயல்பாடு, தி sort() முறை ஒரு முக்கிய அளவுருவையும் ஏற்றுக்கொள்கிறது, அங்கு நாம் a ஐப் பயன்படுத்துகிறோம் lambda வரிசைப்படுத்துவதற்கு அகராதி விசையை ('பெயர்') குறிப்பிடுவதற்கான செயல்பாடு. பட்டியலில் மாற்றியமைப்பதன் மூலம், தி sort() புதிய பட்டியலை உருவாக்காமல், ஏற்கனவே உள்ள பட்டியலின் கூறுகளை மறுசீரமைப்பதால், இந்த முறை அதிக நினைவக திறன் கொண்டதாக இருக்கும்.
இந்த ஸ்கிரிப்ட்கள் ஒவ்வொன்றும் பயன்படுத்துகிறது key வரிசையாக்க அளவுகோல்களை தீர்மானிக்க அளவுரு. தி key அளவுரு முக்கியமானது, ஏனெனில் இது ஒப்பீடு செய்வதற்கு முன் ஒவ்வொரு உறுப்புக்கும் பயன்படுத்தப்படும் செயல்பாட்டைக் குறிப்பிட அனுமதிக்கிறது. இந்தச் செயல்பாட்டின் வருவாய் மதிப்பு உறுப்புகளின் வரிசையைத் தீர்மானிக்கப் பயன்படுகிறது. இந்த எடுத்துக்காட்டுகளில், தி lambda செயல்பாடு மற்றும் itemgetter() செயல்பாடு முக்கிய செயல்பாடுகளாக செயல்படுகிறது, ஒவ்வொரு அகராதியிலிருந்தும் 'பெயர்' மதிப்பைப் பிரித்தெடுத்து வரிசைப்படுத்தப் பயன்படுத்துகிறது. இந்த கட்டளைகளைப் புரிந்துகொண்டு பயன்படுத்துவதன் மூலம், பைத்தானில் உள்ள சிக்கலான தரவு கட்டமைப்புகளை நாம் திறமையாக வரிசைப்படுத்தலாம்.
பைத்தானில் ஒரு முக்கிய மதிப்பு மூலம் அகராதிகளின் பட்டியலை வரிசைப்படுத்துதல்
வரிசைப்படுத்தப்பட்ட() செயல்பாடு மற்றும் லாம்ப்டாவைப் பயன்படுத்தி பைதான் ஸ்கிரிப்ட்
data = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
# Sorting by 'name'
sorted_data = sorted(data, key=lambda x: x['name'])
print(sorted_data)
# Output: [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
ஆபரேட்டர் தொகுதியிலிருந்து உருப்படி பெறுபவர் செயல்பாட்டைப் பயன்படுத்துதல்
அகராதிகளை வரிசைப்படுத்துவதற்கான ஐட்டம்கெட்டருடன் பைதான் ஸ்கிரிப்ட்
from operator import itemgetter
data = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
# Sorting by 'name'
sorted_data = sorted(data, key=itemgetter('name'))
print(sorted_data)
# Output: [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
வரிசைப்படுத்தல் () முறையைப் பயன்படுத்துதல்
பைதான் ஸ்கிரிப்ட் வரிசை() முறையைப் பயன்படுத்துகிறது
data = [{'name': 'Homer', 'age': 39}, {'name': 'Bart', 'age': 10}]
# Sorting by 'name' in-place
data.sort(key=lambda x: x['name'])
print(data)
# Output: [{'name': 'Bart', 'age': 10}, {'name': 'Homer', 'age': 39}]
பைத்தானில் மேம்பட்ட வரிசையாக்க நுட்பங்கள்
அடிப்படை வரிசையாக்கத்திற்கு அப்பால், மிகவும் சிக்கலான வரிசையாக்கத் தேவைகளுக்குப் பயன்படுத்தக்கூடிய மேம்பட்ட நுட்பங்களை பைதான் வழங்குகிறது. பல விசைகள் மூலம் வரிசைப்படுத்துவது அத்தகைய ஒரு நுட்பமாகும். எடுத்துக்காட்டாக, ஒவ்வொரு அகராதியிலும் ஒரு நபரின் பெயர், வயது மற்றும் நகரம் இருக்கும் அகராதிகளின் பட்டியல் எங்களிடம் இருந்தால், முதலில் பெயர், பின்னர் வயது மற்றும் இறுதியாக நகரத்தின் அடிப்படையில் வரிசைப்படுத்த விரும்பலாம். இதைப் பயன்படுத்தி அடையலாம் sorted() ஒரு முக்கிய அளவுருவுடன் செயல்படும், இது வரிசைப்படுத்த பல மதிப்புகளை வழங்குகிறது. பல விசைகளைக் குறிப்பிடுவதன் மூலம், நாம் மிகவும் நுணுக்கமான மற்றும் விரிவான வரிசையாக்க வரிசையை உருவாக்க முடியும்.
மற்றொரு பயனுள்ள நுட்பம் பயன்பாடு ஆகும் cmp_to_key இருந்து செயல்பாடு functools தொகுதி. இந்த செயல்பாடு ஒப்பீட்டு செயல்பாட்டை ஒரு முக்கிய செயல்பாடாக மாற்ற அனுமதிக்கிறது, பின்னர் அதைப் பயன்படுத்தலாம் sorted() அல்லது sort(). எளிமையான விசைச் செயல்பாட்டின் மூலம் எளிதில் பிடிக்க முடியாத தனிப்பயன் ஒப்பீட்டு தர்க்கம் தேவைப்படும்போது இது மிகவும் பயனுள்ளதாக இருக்கும். இரண்டு கூறுகளை ஒப்பிட்டு எதிர்மறை, பூஜ்யம் அல்லது நேர்மறை மதிப்பை வழங்கும் ஒப்பீட்டு செயல்பாட்டை வரையறுப்பதன் மூலம், நமது குறிப்பிட்ட தேவைகளுக்கு ஏற்ற தனிப்பயன் வரிசையாக்க நடத்தையை உருவாக்கலாம்.
பைத்தானில் அகராதிகளை வரிசைப்படுத்துவது பற்றிய பொதுவான கேள்விகள் மற்றும் பதில்கள்
- அகராதிகளின் பட்டியலை இறங்கு வரிசையில் விசை மூலம் எப்படி வரிசைப்படுத்துவது?
- இதைப் பயன்படுத்தி அகராதிகளின் பட்டியலை இறங்கு வரிசையில் வரிசைப்படுத்தலாம் reverse=True உடன் அளவுரு sorted() அல்லது sort() செயல்பாடு.
- நான் பல விசைகள் மூலம் வரிசைப்படுத்த முடியுமா?
- ஆம், ஒரு முக்கிய அளவுருவைப் பயன்படுத்தி பல விசைகளால் வரிசைப்படுத்தலாம், இது வரிசைப்படுத்த பல மதிப்புகளை வழங்கும், எ.கா. key=lambda x: (x['name'], x['age']).
- எல்லா அகராதிகளிலும் சாவி இல்லை என்றால் என்ன செய்வது?
- முக்கிய செயல்பாட்டில் இயல்புநிலை மதிப்பைப் பயன்படுத்தி விடுபட்ட விசைகளைக் கையாளலாம், எ.கா. key=lambda x: x.get('name', '').
- கேஸ்-சென்சிட்டிவ் கீகள் மூலம் அகராதிகளை எப்படி வரிசைப்படுத்துவது?
- நீங்கள் கேஸ்-சென்சிட்டிவ் வரிசைப்படுத்தலைப் பயன்படுத்தி செய்யலாம் str.lower முக்கிய செயல்பாட்டில், எ.கா., key=lambda x: x['name'].lower().
- பட்டியல்களாக இருக்கும் மதிப்புகளின்படி அகராதிகளை வரிசைப்படுத்த முடியுமா?
- ஆம், முக்கிய செயல்பாட்டில் பட்டியல் உறுப்பின் குறியீட்டைக் குறிப்பிடுவதன் மூலம் பட்டியல் மதிப்புகளின்படி வரிசைப்படுத்தலாம், எ.கா. key=lambda x: x['scores'][0].
- அகராதிகளின் பட்டியலை எவ்வாறு வரிசைப்படுத்துவது?
- இதைப் பயன்படுத்தி நீங்கள் அகராதிகளின் பட்டியலை வரிசைப்படுத்தலாம் sort() ஒரு முக்கிய செயல்பாடு கொண்ட பட்டியலில் உள்ள முறை.
- வரிசைப்படுத்த தனிப்பயன் ஒப்பீட்டு செயல்பாட்டை நான் பயன்படுத்தலாமா?
- ஆம், தனிப்பயன் ஒப்பீட்டு செயல்பாட்டை முக்கிய செயல்பாட்டிற்கு மாற்றுவதன் மூலம் நீங்கள் பயன்படுத்தலாம் cmp_to_key இருந்து functools தொகுதி.
- உள்ளமைக்கப்பட்ட விசை மூலம் அகராதிகளை எவ்வாறு வரிசைப்படுத்துவது?
- உள்ளமைக்கப்பட்ட மதிப்பை அணுகும் விசைச் செயல்பாட்டைப் பயன்படுத்தி, உள்ளமைக்கப்பட்ட விசையால் வரிசைப்படுத்தலாம், எ.கா. key=lambda x: x['address']['city'].
- அகராதிகளின் பெரிய பட்டியலை வரிசைப்படுத்த மிகவும் திறமையான வழி எது?
- அகராதிகளின் பெரிய பட்டியலை வரிசைப்படுத்துவதற்கான மிகச் சிறந்த வழி, பயன்படுத்துவதாகும் sorted() செயல்பாடு அல்லது sort() பைத்தானில் செயல்திறனுக்காக இவை உகந்ததாக இருப்பதால், பொருத்தமான முக்கிய செயல்பாட்டைக் கொண்ட முறை.
பைத்தானில் உள்ள வரிசையாக்க நுட்பங்களை சுருக்கமாக
பைத்தானில் அகராதிகளின் பட்டியலை வரிசைப்படுத்துவது, பயன்படுத்துவதை உள்ளடக்கியது sorted() செயல்பாடு, தி sort() முறை மற்றும் மேம்பட்ட நுட்பங்கள் போன்றவை itemgetter() ஆபரேட்டர் தொகுதியிலிருந்து. தி sorted() செயல்பாடு ஒரு புதிய வரிசைப்படுத்தப்பட்ட பட்டியலை வழங்குகிறது, அதே நேரத்தில் sort() முறை பட்டியலை இடத்தில் வரிசைப்படுத்துகிறது. இரண்டு முறைகளும் வரிசையாக்க அளவுகோல்களைத் தீர்மானிக்க முக்கிய அளவுருவைப் பயன்படுத்துகின்றன. பயன்படுத்தி lambda செயல்பாடுகள் அல்லது itemgetter() குறிப்பிட்ட அகராதி விசைகள் மூலம் நெகிழ்வான மற்றும் திறமையான வரிசைப்படுத்தலை அனுமதிக்கிறது. இந்த நுட்பங்கள் டெவலப்பர்கள் தரவை திறம்பட நிர்வகிக்கவும் பகுப்பாய்வு செய்யவும், அவர்களின் குறியீட்டில் ஒழுங்கையும் படிக்கக்கூடிய தன்மையையும் பராமரிக்க உதவுகிறது.
பல விசைகள் அல்லது தனிப்பயன் ஒப்பீட்டு செயல்பாடுகள் மூலம் வரிசைப்படுத்துதல் போன்ற சிக்கலான வரிசையாக்கத் தேவைகளுக்கு, பைதான் சக்திவாய்ந்த கருவிகளை வழங்குகிறது. இந்த மேம்பட்ட நுட்பங்களைப் பயன்படுத்துவதன் மூலம், டெவலப்பர்கள் பல்வேறு தரவு கட்டமைப்புகள் மற்றும் வரிசையாக்கத் தேவைகளைக் கையாள முடியும். இந்த முறைகளைப் புரிந்துகொள்வது திறமையான மற்றும் ஒழுங்கமைக்கப்பட்ட தரவு நிர்வாகத்தை உறுதி செய்கிறது, பெரிய மற்றும் சிக்கலான தரவுத்தொகுப்புகளுடன் வேலை செய்வதை எளிதாக்குகிறது. முக்கிய அளவுரு, லாம்ப்டா செயல்பாடுகள் மற்றும் உருப்படிகளை பெறுதல் ஆகியவற்றைப் பயன்படுத்தி, பைத்தானின் வரிசைப்படுத்தும் திறன்கள் தரவு அமைப்பு மற்றும் கையாளுதலுக்கான வலுவான தீர்வை வழங்குகின்றன.
பைத்தானில் அகராதிகளை வரிசைப்படுத்துவதற்கான இறுதி எண்ணங்கள்
ஒரு குறிப்பிட்ட விசையின் மதிப்பின் மூலம் அகராதிகளின் பட்டியல்களை வரிசைப்படுத்துவதில் தேர்ச்சி பெறுவது பைதான் டெவலப்பர்களுக்கு ஒரு முக்கியமான திறமையாகும். போன்ற செயல்பாடுகளைப் பயன்படுத்துவதன் மூலம் sorted() மற்றும் sort(), மற்றும் முக்கிய அளவுரு, லாம்ப்டா செயல்பாடுகள் மற்றும் பொருள் பெறுபவர் ஆகியவற்றின் சக்தியை மேம்படுத்துவதன் மூலம், ஒருவர் தரவை திறமையாக நிர்வகிக்கவும் ஒழுங்கமைக்கவும் முடியும். இந்த நுட்பங்கள் குறியீடு வாசிப்புத்திறனை மேம்படுத்துவதோடு மட்டுமல்லாமல் தரவு பகுப்பாய்வு திறன்களையும் மேம்படுத்துகின்றன, இது சிக்கலான தரவுத்தொகுப்புகளைக் கையாள்வதற்கான சிறந்த தேர்வாக பைத்தானை உருவாக்குகிறது.