(List, Tuples, Set மற்றும் Dictionary) தொகுப்பு தரவினங்கள்: ஒரு மதிப்பெண் வினாக்கள், புத்தக வினா விடைகள் மற்றும் குறிப்புகள்
பைத்தானில் நான்கு உள்ளிணைந்த தொகுப்பு வகைகள் உள்ளன: பட்டியல், டூப்பிள், செட், அகராதி. ஒவ்வொன்றையும் உருவாக்குவது, அதன் உறுப்புகளை அணுகுவது, மாற்றுவது, சேர்ப்பது, நீக்குவது ஆகியவற்றை இப்பாடம் விளக்குகிறது. பட்டியல் உருவாக்கம் (list comprehension), டூப்பிள் மதிப்பிருத்தல், செட் செயல்பாடுகள், திறவுகோல் மூலம் மதிப்பைத் தேடுதல் ஆகியவையும் உண்டு. எந்த வகையை மாற்றலாம், எது நகல்களை ஏற்கும் என்பதையும் கவனிக்கிறோம்.
இந்தப் பாடத்தைப் படியுங்கள்
முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டவை
இந்தப் பாடத்திலிருந்து 6 வினாக்கள் 6 முந்தைய பொதுத் தேர்வுகளில் கேட்கப்பட்டன. விடையையும் விளக்கத்தையும் காண எந்த வினாவையும் திறக்கவும்.
-
மார்ச் 2026
mylist=[10, 20, 30, 40] எனில், mylist.append(35) -ன் விடை __________.விடையுடன் வினாத்தாளில் பார் →
-
மார்ச் 2024
If List = [10, 20, 30, 40, 50] எனில்விடையுடன் வினாத்தாளில் பார் →
List [2] = 35 -ன் விடை : -
மார்ச் 2023
set A={3, 6, 9}, set B={1, 3, 9} எனில்,விடையுடன் வினாத்தாளில் பார் →
பின்வரும் நிரலின் வெளியீடு Print (set A|set B) : -
மே 2022
If List = [17, 23, 41, 10] எனில் List.append(32) -ன் வெளியீடு :விடையுடன் வினாத்தாளில் பார் →
-
துணைத் தேர்வு 2021
Let List = [2, 4, 6, 8, 10], எனில் print(List[-2]) -ன் விடை :விடையுடன் வினாத்தாளில் பார் →
-
மார்ச் 2020
பைத்தான் Dictionary -ல் திறவுகோல்கள் எதனால் குறிப்பிடப்படுகின்றன.விடையுடன் வினாத்தாளில் பார் →
(List, Tuples, Set மற்றும் Dictionary) தொகுப்பு தரவினங்கள் பற்றி
நடுத்தரம் ~120 நிமிடப் படிப்பு
mark = 85 போன்ற ஒரு மாறி ஒரே ஒரு மதிப்பைத்தான் வைத்திருக்கும். நாற்பது மாணவர்களின் மதிப்பெண்களைச் சேமிக்க, பல மதிப்புகளை வைத்திருக்கும் ஒரே பெயர் தேவை. அதைத்தான் ஒரு தொகுப்பு செய்கிறது. பைத்தான் நான்கு தொகுப்புகளைத் தருகிறது: பட்டியல் (List), டூப்பிள் (Tuple), செட் (Set), அகராதி (Dictionary).
இவற்றுக்கு இடையிலான வேறுபாடுகளை வைத்தே எதைப் பயன்படுத்துவது என்று முடிவு செய்கிறோம். பட்டியல் உறுப்புகளை வரிசையாக வைத்திருக்கும்; அவற்றை மாற்றவும் அனுமதிக்கும். டூப்பிளும் வரிசையை வைத்திருக்கும், ஆனால் உருவாக்கிய பிறகு மாற்ற முடியாது. செட்டில் தனித்த உறுப்புகள் மட்டுமே இருக்கும்; நிலையான வரிசை கிடையாது. கணிதத்தில் உள்ளது போல சேர்ப்பு (union), வெட்டு (intersection) செயல்பாடுகளை அது ஆதரிக்கிறது. அகராதி இணைகளைச் சேமிக்கிறது. ஒவ்வொரு திறவுகோலும் (key) ஒரு மதிப்புடன் இணைந்திருக்கும். எனவே மதிப்பை இடத்தைக் கொண்டு அல்ல, திறவுகோலைக் கொண்டு தேடுகிறோம்.
பல தேர்வு வினாக்கள் அடைப்புக்குறியை மட்டுமே வைத்துக் கேட்கப்படுகின்றன: [ ] பட்டியலை உருவாக்கும், ( ) டூப்பிளை உருவாக்கும், { } உறுப்புகளில் முக்காற்புள்ளி (colon) இருந்தால் அகராதி, இல்லையென்றால் செட். வெற்று நெளிவு அடைப்பு {} வெற்று அகராதியைத் தரும்; வெற்று செட்டை set() என்றுதான் எழுத வேண்டும். வேறு சில வினாக்கள் append(), extend(), insert(), pop() அல்லது clear() இயக்கிய பின் வரும் வெளியீட்டையோ, ஒரு செட் செயல்பாட்டின் விடையையோ கேட்கும். ஒவ்வொரு படிக்குப் பிறகும் தொகுப்பின் நிலையை எழுதி, நிரலுடன் ஒப்பிட்டுப் பாருங்கள்.
நீங்கள் கற்பவை
- பட்டியல், டூப்பிள், செட், அகராதி ஆகியவற்றை மாறும் தன்மை, வரிசை, நகல்களை ஏற்குமா என்ற அடிப்படையில் ஒப்பிடுதல்.
- append(), extend(), insert(), remove(), pop(), clear() இயக்கிய பின் பட்டியல் எப்படி இருக்கும் என்று கணித்தல்.
- கொடுக்கப்பட்ட நிபந்தனைக்கு ஏற்ப மதிப்புகளை உருவாக்கும் பட்டியல் உருவாக்கங்களை எழுதுதல்.
- நிலையான தரவு, டூப்பிள் மதிப்பிருத்தல், ஒரு செயற்கூறிலிருந்து பல மதிப்புகளைத் திருப்பி அனுப்புதல் ஆகியவற்றுக்கு டூப்பிளைப் பயன்படுத்துதல்.
- இரண்டு செட்டுகளின் சேர்ப்பு, வெட்டு, வித்தியாசம், சமச்சீர் வித்தியாசம் ஆகியவற்றைக் கண்டறிதல்.
- அகராதியை உருவாக்கி, திறவுகோல் மூலம் மதிப்புகளைப் படித்து, இணைகளைச் சேர்த்தல், மாற்றுதல், நீக்குதல்.
தொடங்குவதற்கு முன்
- பைத்தான் மாறிகள், தரவினங்கள், செயற்குறிகள்.
- while, for மடக்குகள் மற்றும் if கூற்றுகள்.
- அளபுருக்களும் திருப்பி அனுப்பும் மதிப்புகளும் கொண்ட செயற்கூறுகளை வரையறுத்தல்.
இந்த அத்தியாயத்தில் உள்ள தலைப்புகள்
(List, Tuples, Set மற்றும் Dictionary) தொகுப்பு தரவினங்கள் — விரிவான விளக்கம்
பைத்தான் தொகுப்புகள்: பட்டியல், டூப்பிள், செட், அகராதி
பட்டியல்: வரிசை உண்டு, மாற்றலாம்
பட்டியல் சதுர அடைப்புக்குறிக்குள் எழுதப்படுகிறது, எ.கா. Marks = [10, 23, 41, 75]. இதில் வெவ்வேறு வகை மதிப்புகளை வைக்கலாம். ஒவ்வொரு உறுப்புக்கும் 0 இலிருந்து தொடங்கும் சுட்டெண் (index) உண்டு. எதிர்மறைச் சுட்டெண்கள் கடைசியிலிருந்து எண்ணும்; எனவே Marks[-1] என்பது 75. பட்டியல் மாறும் தன்மை (mutable) கொண்டது. append() கடைசியில் ஓர் உறுப்பைச் சேர்க்கும். extend() மற்றொரு பட்டியலின் எல்லா உறுப்புகளையும் சேர்க்கும். insert(position, value) நாம் சொல்லும் சுட்டெண்ணில் ஓர் உறுப்பை வைக்கும். நீக்குவதற்கு, சுட்டெண் அல்லது துண்டுடன் (slice) del பயன்படுத்தலாம். remove(value) பொருந்தும் முதல் மதிப்பை நீக்கும். pop() சுட்டெண் மூலம் ஓர் உறுப்பை நீக்கும்; சுட்டெண் தரவில்லை என்றால் கடைசி உறுப்பை நீக்கும். clear() பட்டியலைக் காலியாக்கும். பட்டியல் உருவாக்கம் (list comprehension) ஒரே வரியில் பட்டியலை உருவாக்குகிறது; எ.கா. [x * x for x in range(1, 11)] என்பது 1 முதல் 10 வரையான எண்களின் வர்க்கங்களைத் தரும்.
டூப்பிள்: வரிசை உண்டு, மாற்ற முடியாது
டூப்பிள் என்பது காற்புள்ளியால் பிரிக்கப்பட்ட மதிப்புகளின் தொடர். பொதுவாக இது பிறை அடைப்புக்குறிக்குள் எழுதப்படும், எ.கா. Tup = (10, 20, 30). டூப்பிள் மாறாத் தன்மை (immutable) கொண்டது: உருவாக்கிய பிறகு ஓர் உறுப்பை மாற்றவோ, சேர்க்கவோ, நீக்கவோ முடியாது. ஆனால் del Tup முழு டூப்பிளையும் நீக்கிவிடும். மாறாது என்பதால், பட்டியலை விட டூப்பிளின் மீது பைத்தான் வேகமாக மடக்கு (iteration) செய்கிறது. ஒரே உறுப்புள்ள டூப்பிளுக்குப் பின்னால் காற்புள்ளி தேவை: (10,). டூப்பிள் மதிப்பிருத்தல் (tuple assignment) மூலம் பல மாறிகளுக்கு ஒரே நேரத்தில் மதிப்பு தரலாம், எ.கா. (a, b, c) = (34, 90, 76). ஒரு செயற்கூறு பல மதிப்புகளை ஒன்றாக டூப்பிளாகத் திருப்பி அனுப்பலாம். ஒரு டூப்பிளுக்குள் மற்றொரு டூப்பிளை வைக்கவும் (nested) முடியும்.
செட்: தனித்த உறுப்புகள், வரிசை இல்லை
செட் என்பது நெளிவு அடைப்புக்குறிக்குள் எழுதப்படும் மாறும் தன்மையுள்ள தொகுப்பு, எ.கா. S = {1, 2, 2, 3}. இதில் நகல்கள் இருக்காது. எனவே S இல் 1, 2, 3 மட்டுமே இருக்கும். இதற்குச் சுட்டெண் நிலைகள் கிடையாது. செட் கணிதச் செயல்பாடுகளை ஆதரிக்கிறது. சேர்ப்பு (Union) (| அல்லது union()) இரண்டு செட்டுகளின் எல்லா உறுப்புகளையும் தரும். வெட்டு (Intersection) (& அல்லது intersection()) பொதுவான உறுப்புகளைத் தரும். வித்தியாசம் (Difference) (- அல்லது difference()) முதல் செட்டில் இருந்து இரண்டாவதில் இல்லாத உறுப்புகளைத் தரும். சமச்சீர் வித்தியாசம் (Symmetric difference) (^ அல்லது symmetric_difference()) ஏதேனும் ஒரு செட்டில் மட்டும் இருந்து, இரண்டிலும் இல்லாத உறுப்புகளைத் தரும்.
அகராதி: திறவுகோல்-மதிப்பு இணைகள்
அகராதி key: value வடிவ இணைகளை நெளிவு அடைப்புக்குறிக்குள் சேமிக்கிறது, எ.கா. Dict = {'Rollno': 1234, 'Name': 'Murali'}. ஒரு மதிப்பை எண் நிலையைக் கொண்டு அல்ல, அதன் திறவுகோலைக் கொண்டு அணுகுகிறோம்: Dict['Name']. திறவுகோல்கள் தனித்தவையாக இருக்க வேண்டும்; அவை எழுத்து வடிவ வேறுபாட்டை (case-sensitive) கவனிக்கும். எனவே 'Name' மற்றும் 'name' இரண்டும் வெவ்வேறு திறவுகோல்கள். சரம், எண், டூப்பிள் போன்ற மாறாத எந்த மதிப்பும் திறவுகோலாக இருக்கலாம். புதிய திறவுகோலுக்கு மதிப்பு தந்தால் ஒரு புதிய இணை சேரும்; ஏற்கனவே உள்ள திறவுகோலுக்குத் தந்தால் அதன் மதிப்பு மாற்றப்படும். del Dict['Name'] ஓர் இணையை நீக்கும், clear() அகராதியைக் காலியாக்கும், del Dict அகராதியையே நீக்கிவிடும்.
தவிர்க்க வேண்டிய பொதுவான தவறுகள்
- t[0] = 5 என்பது போல டூப்பிள் உறுப்பை மாற்ற முயல்வது; இது TypeError தரும். மாற்ற வேண்டுமென்றால் list(t) மூலம் டூப்பிளைப் பட்டியலாக மாற்றுங்கள்.
- பல உறுப்புகளைச் சேர்க்க append() பயன்படுத்துவது. a.append([4, 5]) என்பது [4, 5] என்ற பட்டியலை ஒரே உறுப்பாகச் சேர்க்கும்; a.extend([4, 5]) என்பது 4, 5 இரண்டையும் தனித்தனியாகச் சேர்க்கும்.
- ஒரு உறுப்புள்ள டூப்பிளை (10) என்று எழுதுவது. காற்புள்ளி இல்லாவிட்டால் அது வெறும் முழு எண் 10 தான்; (10,) என்று எழுதுங்கள்.
- தட்டச்சு செய்த வரிசையிலேயே செட் உறுப்புகளை வைத்திருக்கும் என்று எதிர்பார்ப்பது, அல்லது S[0] பயன்படுத்த முயல்வது. செட்டுக்குச் சுட்டெண் நிலைகள் கிடையாது.
- அகராதியில் ஒரே திறவுகோலை இருமுறை எழுதுவது. ஒரு நகல் மட்டுமே வைக்கப்படும்; பின்னால் வரும் மதிப்பு முந்தையதை மாற்றிவிடும், பிழைச் செய்தி எதுவும் வராது.
இவற்றை பயிற்சித் தேர்வு மூலம் சோதித்துப் பாருங்கள்; பிறகு விடையுடன் கூடிய வினாக்கள் பகுதியில் விரிவான விளக்கத்தைப் படியுங்கள்.
அடிக்கடி கேட்கப்படும் கேள்விகள்
பட்டியலுக்கும் டூப்பிளுக்கும் உள்ள முக்கிய வேறுபாடு என்ன?
பட்டியல் மாறும் தன்மை கொண்டது, சதுர அடைப்புக்குறிக்குள் எழுதப்படும்; எனவே உறுப்புகளைச் சேர்க்கலாம், மாற்றலாம், நீக்கலாம். டூப்பிள் மாறாத் தன்மை கொண்டது, பொதுவாகப் பிறை அடைப்புக்குறிக்குள் எழுதப்படும்; உருவாக்கிய பிறகு அதன் உறுப்புகளை மாற்ற முடியாது. இதனால் பட்டியலை விட டூப்பிளின் மீது பைத்தான் வேகமாக மடக்கு செய்கிறது.
ஒரே ஒரு உறுப்புள்ள டூப்பிளை எப்படி உருவாக்குவது?
உறுப்புக்குப் பின் காற்புள்ளி இடுங்கள்: t = (10,). காற்புள்ளி இல்லாவிட்டால் (10) என்பது சாதாரண அடைப்புக்குள் உள்ள முழு எண் 10 ஆகவே கருதப்படும். type((10,)) என்பது tuple எனவும், type((10)) என்பது int எனவும் தருவதை வைத்துச் சரிபார்க்கலாம்.
செட்டில் உள்ள நகல் மதிப்புகளுக்கு என்ன ஆகும்?
செட் ஒவ்வொரு மதிப்பையும் ஒருமுறை மட்டுமே சேமிக்கும். {1, 2, 2, 3} என்று எழுதினாலும், ஏற்கனவே உள்ள மதிப்பைச் சேர்த்தாலும், கூடுதல் நகல் கைவிடப்படும்; பிழை எதுவும் வராது. இங்கே செட்டில் 1, 2, 3 மட்டுமே இருக்கும்.
clear() க்கும் del க்கும் உள்ள வேறுபாடு என்ன?
clear() எல்லா உறுப்புகளையும் நீக்கும், ஆனால் பொருளை (object) வைத்திருக்கும்; பட்டியல் [] ஆகவும் அகராதி {} ஆகவும் மாறும். del Marks என்பது போலப் பெயருடன் மட்டும் del எழுதினால் மாறியே நீக்கப்படும்; அதன் பிறகு Marks பயன்படுத்தினால் NameError வரும்.
பட்டியல் உருவாக்கம் (list comprehension) என்றால் என்ன?
மடக்கையும் விருப்பமான நிபந்தனையையும் சதுர அடைப்புக்குறிக்குள் எழுதிப் பட்டியலை உருவாக்கும் சுருக்கமான முறை இது. எ.கா. [x for x in range(1, 21) if x % 2 == 0] என்பது 2 முதல் 20 வரையான இரட்டை எண்களைத் தரும். append() உடன் கூடிய for மடக்கை, படிக்க எளிதான ஒரே வரியாக இது மாற்றுகிறது.
எந்த மதிப்பையும் அகராதியின் திறவுகோலாகப் பயன்படுத்தலாமா?
இல்லை. திறவுகோல்கள் தனித்தவையாகவும், சரம், முழு எண், டூப்பிள் போன்ற மாறாத வகையாகவும் இருக்க வேண்டும். பட்டியல் மாறக்கூடியது என்பதால் அது திறவுகோலாக இருக்க முடியாது; முயன்றால் பைத்தான் TypeError தரும். ஆனால் மதிப்புகள் எந்த வகையாகவும் இருக்கலாம்.
கடைசியாகப் புதுப்பிக்கப்பட்டது 17 செப்டெம்பர் 2026