பைத்தானின் தொகுப்புகள்(Collections)

பைத்தானில், தொகுப்புகள் என்பவை தரவைச் சேமிப்பதற்காகப் பயன்படுத்தப் படுகின்ற கொள்கலன்களாகும். tuples, lists, sets , dictionaries ஆகியன பைத்தானில் உள்ளமைக்கப்பட்ட தரவு கட்டமைப்புகளின்தொகுப்புகளாகும் இந்த தொகுப்புகளின் இனமானது, உள்ளமைக்கப்பட்ட தரவு கட்டமைப்புகளைத் தவிர கூடுதலான தரவு கட்டமைப்புகளையும் வழங்குகின்றது அவை பின்வருமாறு:.
Counter, namedTuple, orderedDict , defaultDict, Deque, chainMap, ஆகியன பைத்தானில்’தொகுப்புகளின்’ தகவமைவில் உள்ள சில தரவு கட்டமைப்பு களாகும் இவைகள் குறித்த விளக்கங்களை இப்போது காண்போம்,
1.Counter()எனும்செயலி
இது ஒருதொகுப்பு வகையாகும், இதில் உறுப்புகள் அகராதியின் திறவுகோளாகவும், எண்ணிக்கைகள் அகராதியின் மதிப்புகளாகவும் சேமிக்கப்படும்.
பட்டியலில் உள்ள எந்தவொரு பொருளின் அதிர்வெண்ணையும் கணக்கிட விரும்பும் போதெல்லாம், பாரம்பரியமாக ‘Count’ எனப்படும் மாறியைப் பயன்படுத்திகொள்வது வழக்கமாகும், இது துவக்கத்தில் பூஜ்ஜியமாக அமைக்கப்பட்டிருக்கும் , தொடர்ந்து ஒவ்வொரு முறையும் உறுப்புகளை சந்திக்கும் போது கூடுதலாகஒன்று அதிகரிக்கப்படும். பட்டியல் நீளமாக இருக்கும் போது இது உகந்த வழி அன்று. எனவே, இதைத் தவிர்ப்பதற்காக, ஒரே நேரத்தில் வெவ்வேறு பொருட்களை எண்ணிக்கையிடவும், counters என்பதை பயன்படுத்தி கொள்ளப்படுகின்றது.
எடுத்துக்காட்டாக
பின்வரும் எடுத்துக்காட்டில், தொகுப்புகளின் நூலகத்திலிருந்து எண்ணிக்கை யிடுகின்ற முறையை பதிவிறக்கம் செய்கிறது. அது பின்னர் ‘a’ எனப்படும் சரத்தை உருவாக்கி அதற்கு “Tirukovilur” எனும்மதிப்பை ஒதுக்குகிறது.
from collections import Counter
a=”Tirukovilur”
result=Counter(a)
print(result)
இதன் வெளியீடு
மேலே உள்ள நிரலை இயக்கிய பிறகு, அது குறிப்பிட்ட எழுத்து எத்தனை முறை தோன்றுகின்றது என எண்ணிக்கையுடன் குறிப்பிட்டு.ஒவ்வொரு எழுத்தின் அகராதியையும் ‘a’ இல் அச்சிடுகிறது,
Counter({‘i’: 2, ‘r’: 2, ‘u’: 2, ‘k’: 1, ‘l’: 1, ‘o’: 1, ‘t’: 1, ‘v’: 1, })

2.values() எனும்செயலி
values() எனும் செயலியானது அனைத்து மதிப்புகளுடன் தொடர்புடைய எண்ணிக்கைகளின் பட்டியலைக் கொடுக்கின்றது.
எடுத்துக்காட்டாக
from collections import Counter
a=[“apple”,”mango”,”cherry”,”apple”,”mango”,”mango”]
result=Counter(a)
print(result.values())
இதன்வெளியீடு
dict_values([2, 3, 1])

3.most_common() எனும்செயலி
அதிகபட்ச எண்ணிக்கையுடன் உருப்படி/உருப்படிகளின் அகராதியை வழங்க, most_common() எனும்செயலி பயன்படுத்திகொள்ளப்படுகிறது. திரையில் காண்பிக்கப்பட வேண்டிய மதிப்புகளின் எண்ணிக்கை அடைப்புக்குறிக்குள் குறிப்பிடப்பட வேண்டும்.
எடுத்துக்காட்டாக
from collections import Counter
a=[“apple”,”mango”,”cherry”,”apple”,”mango”,”mango”]
result=Counter(a)
print(result.most_common(1))
print(result.most_common(2))
இதன்வெளியீடு
[(‘mango’, 3)]
[(‘mango’, 3), (‘apple’, 2)]

4.namedtuple() எனும்செயலி
namedtuple() எனும் செயலியானது பெயரிடப்பட்ட புலங்களுடன் tuples ஐ உருவாக்க அனுமதிக்கின்றது. எனவே, சுட்டியைப் பயன்படுத்தி உருப்படிகளை அணுகுவதற்குப் பதிலாக, புள்ளி குறிமானத்தைப் பயன்படுத்தி அவற்றை அணுகலாம்.
இந்த சுட்டிகளை பயன்படுத்தி ஒரு tupleஇன் பொருட்களை அணுகுவது கடினமாகவும் குழப்பமாகவும் இருக்கும். அதைத் தவிர்க்க, nametuple() எனும் செயலியைப் பயன்படுத்திகொள்ளலாம்.
tuples போன்றே,பெயரிடப்பட்ட namedtuples எனும் செயலியும் மாறாதவை.
namedtuples எனும் செயலியனது மதிப்புருக்களை பயன்படுத்திகொள்கிறது.
எடுத்துக்காட்டாக
பின்வரும் எடுத்துக்காட்டில், இந்த நிரலின் பெயர், இடம், பாலினம் , வயது ஆகிய நான்கு புலங்களுடன் “person” என்ற பெயரிடப்பட்ட tuplesஐ உருவாக்குகிறது. பின்னர் அது ஒவ்வொரு புலத்திற்கும் மதிப்புகளுடன் id எனப்படும் Tuple என்ற நபரின் நிகழ்வை உருவாக்குகிறது.
from collections import namedtuple
person=namedtuple(“person”,[“name”,”place”,”sex”,”age”])
id=person(“kavya”,”Hyderabad”,”F”,”21″)
print(id[1])
print(id[3])
print(id.place)
print(id.age)
இதன்வெளியீடு
Hyderabad
21
Hyderabad
21

5.OrderedDicte() எனும்செயலி
OrderedDict என்பது அதன் உருப்படிகளின் வரிசையை நினைவில் வைத்திருக்கின்ற ஒரு அகராதி ஆகும். பட்டியலில் சேர்க்கப்படுகின்ற உருப்படிகளின் வரிசையைப் பாதுகாக்க இது பயன்படுத்தப்படுகிறது. சாதாரண அகராதியைப் போலவே பல்வேறு வழிகளில் OrderedDictஇல் உருப்படிகளைச் சேர்க்கலாம்.
எடுத்துக்காட்டாக
from collections import OrderedDict
d=OrderedDict()
d[‘sachin’]=100
d[‘Dhoni’]=90
d[‘Rohit’]=110
d[‘Kohli’]=95
print(d)
இதன்வெளியீடு
மேலே உள்ள குறிமுறைவரிகளை இயக்கும்போது, அது கீழே உள்ள நிரலை உருவாக்கி முழு அகராதியையும் அச்சிடுகிறது.
OrderedDict([(‘sachin’, 100), (‘Dhoni’, 90), (‘Rohit’, 110), (‘Kohli’, 95)])
எடுத்துக்காட்டாக
பின்வரும் நிரலானது தொகுப்புகளின் தகவமைவிலிருந்து OrderedDict இன் இனத்தினை பதிவிறக்கம் செய்கிறது மேலும் நான்கு முக்கிய இரட்டையான மதிப்புகளுடன் OrderedDict எனும் பொருளானது உருவாக்குகிறது. திறவுகோள்கள் ‘சச்சின்’, ‘தோனி’, ‘ரோஹித்’ , ‘கோலி’. இவற்றின் மதிப்புகள் முறையே 100, 90, 110 , 95 ஆகும்.
from collections import OrderedDict
d=OrderedDict([(‘sachin’,100),(‘Dhoni’,90),(‘Rohit’,110),(‘Kohli’,95)])
print(d)
print(d.keys())
இதன்வெளியீடு
OrderedDict([(‘sachin’, 100), (‘Dhoni’, 90), (‘Rohit’, 110), (‘Kohli’, 95)])
odict_keys([‘sachin’, ‘Dhoni’, ‘Rohit’, ‘Kohli’])

6.defaultdicte() எனும்செயலி
defaultdict ஒரு அகராதியின் அனைத்து செயலிகளையும் கூடுதல் வசதிகளையும் கொண்டுள்ளது, அங்கு இது எப்போதுமே ஒரு KeyErrorஐ வழங்காது. அகராதியில், இல்லாத திறவுகோளை அணுக அல்லது மாற்ற முயற்சித்தால், நமக்கு ஒரு Key Error எனும் பிழைச்செய்திகிடைக்கும். அதேசமயம், திறவுகோள்இல்லை என்றால் defaultdict எப்போதும் இயல்புநிலை மதிப்பை ஒதுக்குகிறது. எனவே, விடுபட்ட திறவுகோள்களைக் கையாள defaultdict ஐ பயன்படுத்தி கொள்ளப்படுகிறது.
எடுத்துக்காட்டாக
பின்வரும் நிரல் தொகுப்புகளின் தகவமைவிலிருந்து இயல்புநிலை இனத்தினை பதிவிறக்கம் செய்கிறது. dஎன்பது defaultdict ஐப் பயன்படுத்தி ஒரு புதிய அகராதி உருவாக்கி அதை முழு எண் மதிப்புகளில் எடுக்க அமைக்கிறது. ‘சச்சின்’ மதிப்பு 90, ‘தோனி’யின் மதிப்பு 80, ‘விராட்’ மதிப்பு 95 என மூன்று முக்கிய இரட்டையான மதிப்புகள் அகராதியில் சேர்க்கப்பட்டுள்ளன.
from collections import defaultdict
d=defaultdict(int)
d[‘Sachin’]=90
d[‘Dhoni’]=80
d[‘Virat’]=95
print(d)
print(d[‘Dhoni’])
print(d[‘Rohit’])
இதன்வெளியீடு
defaultdict(, {‘Sachin’: 90, ‘Dhoni’: 80, ‘Virat’: 95})
80
0
‘ரோஹித்’ வரையறுக்கப்படாததாலும், ‘int’ அளவுருவாக கொடுக்கப்பட்டதாலும், இயல்புநிலை மதிப்பு 0 ஆக இருக்கும். எடுத்துக்காட்டாக
from collections import defaultdict
d=defaultdict(float)
d[‘Sachin’]=90
d[‘Dhoni’]=80
print(d[‘Rohit’])
இதன்வெளியீடு
0.0
என்பதாகும்

 

 

%d bloggers like this: