தொகுதி பாடங்கள் (4/4)
அமைக்கிறது
தொகுப்பு என்பது தனித்துவமான, வரிசைப்படுத்தப்படாத கூறுகளின் தொகுப்பாகும். மூன்று வல்லரசுகள்:
- தானியங்கு நீக்கம்: ஒரே உறுப்பை இருமுறை சேர்ப்பதால் எந்த விளைவும் இல்லை.
- O(1) உறுப்பினர் சோதனை:
x in sமில்லியன் கணக்கில் இருந்தாலும் மிக வேகமாக உள்ளது உறுப்புகள் (இது ஹாஷ் அடிப்படையிலானது, கட்டளைகள் போன்றவை). - செட் செயல்பாடுகள்: யூனியன், குறுக்குவெட்டு, வேறுபாடு, சமச்சீர் வேறுபாடு.
ஒரு தொகுப்பை உருவாக்குதல்
vuoto = set() # ATTENZIONE: {} è un dict vuoto, non un set!
numeri = {1, 2, 3}
da_lista = set([1, 1, 2, 3, 3, 3]) # {1, 2, 3}பிரேஸ்கள் மட்டும் {} ஒரு வெற்று அகராதியை உருவாக்கவும், ஒரு தொகுப்பை அல்ல: வெற்று தொகுப்பிற்கு
உங்களுக்கு set() தேவை.
ஒரு தொகுப்பை மாற்றுதல்
s = {1, 2, 3}
s.add(4) # {1, 2, 3, 4}
s.add(1) # nessun effetto (già presente)
s.discard(99) # rimuove se presente, silenzioso altrimenti
s.remove(2) # rimuove o solleva KeyErrorசெயல்பாடுகளை அமைக்கவும்
a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
a | b # {1, 2, 3, 4, 5, 6} unione
a & b # {3, 4} intersezione
a - b # {1, 2} differenza (in a ma non in b)
a ^ b # {1, 2, 5, 6} differenza simmetrica (xor)முறை படிவங்களும் உள்ளன (a.union(b), a.intersection(b), …) இதில்
கூடுதலாக, செட் மட்டுமின்றி, மீண்டும் செய்யக்கூடிய எந்த வகையையும் ஏற்கவும்.
உறுப்பினர் சோதனை
parole = {"ciao", "mondo", "python"}
"ciao" in parole # True O(1)
"java" not in parole # Trueஒப்பிடுவதற்கு: in உடன் list உடன் தேடுவது O(n) மற்றும் நீண்டது
இது மிகவும் மெதுவாக உள்ளது என்று பட்டியலிடுகிறது.
உறைந்த தொகுப்பு: மாறாத பதிப்பு
frozenset({1, 2, 3}) என்பது ஹேஷபிள் பதிப்பாகும்: இது ஒரு டிக்ட் கீ அல்லது ஒரு
மற்றொரு தொகுப்பின் உறுப்பு.
செயல்பாடுகள் மற்றும் செயல்திறனை அமைக்கவும்
தொகுப்புகள் ஹாஷ் டேபிள்களாகச் செயல்படுத்தப்படுகின்றன, இது உறுப்பினர் சோதனையை (x in my_set) மிக வேகமாகச் செய்கிறது: இது நிலையான நேரத்தில் இயங்குகிறது O(1), தேடலுக்கு நேரியல் நேரம் எடுக்கும் O(n). கூடுதலாக, அவை யூனியன் (|), குறுக்குவெட்டு (&) மற்றும் வேறுபாடு (-) போன்ற இயற்கணித செயல்பாடுகளை ஆதரிக்கின்றன.
முயற்சி செய்து பாருங்கள்
`nums = [1, 2, 2, 3, 3, 3, 4]` என்ற பட்டியலைக் கொடுத்து, தனிப்பட்ட மதிப்புகளுடன் (எந்த வரிசையிலும்) `unique_items` ஐ உருவாக்கி, பின்னர் `count` ஐ len(unique_items) ஆகக் கணக்கிடவும். `எண்ணிக்கை` மதிப்பிடவும்.
குறிப்பைக் காட்டு
தொகுப்பு(எண்கள்) நகல்களை நீக்குகிறது.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
மதிப்பாய்வு பயிற்சி
`a = {1, 2, 3, 4}` மற்றும் `b = {3, 4, 5, 6}` கொடுக்கப்பட்டால், குறுக்குவெட்டை `common_items` ஆகவும், a-b வித்தியாசத்தை `only_a` ஆகவும் கணக்கிடவும். டூப்பிள் `(பொதுவான_உருப்படிகள், மட்டும்_அ)` என்பதை மதிப்பிடவும்.
குறிப்பைக் காட்டு
& குறுக்குவெட்டு, - வேறுபாடு.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்
கூடுதல் சவால்
Given two sets `set_a = {1, 2, 3}` and `set_b = {2, 3, 4}`, calculate the mathematical intersection of the two sets (their common elements). Store the resulting set in `common_elements` and evaluate it.
குறிப்பைக் காட்டு
நீங்கள் & ஆபரேட்டர் அல்லது set_a.intersection(set_b) முறையைப் பயன்படுத்தலாம்.
3 முயற்சிகளுக்குப் பிறகு தீர்வு கிடைக்கும்