ప్రధాన కంటెంట్‌కు వెళ్లండి
మాడ్యూల్ 3 · 4లో పాఠం 4కోర్సులో 12/36~10 min
మాడ్యూల్ పాఠాలు (4/4)

సెట్స్

సెట్ అనేది ప్రత్యేకమైన, క్రమం లేని అంశాల సమాహారం. మూడు అగ్రరాజ్యాలు:

  1. ఆటోమేటిక్ డీప్లికేషన్: ఒకే మూలకాన్ని రెండుసార్లు జోడించడం వల్ల ఎటువంటి ప్రభావం ఉండదు.
  2. O(1) సభ్యత్వ పరీక్ష: x in s మిలియన్ల సంఖ్యలో ఉన్నప్పటికీ చాలా వేగంగా ఉంటుంది మూలకాల యొక్క (ఇది హాష్-ఆధారితది, డిక్ట్‌ల వంటిది).
  3. సెట్ ఆపరేషన్లు: యూనియన్, ఖండన, వ్యత్యాసం, సౌష్టవ వ్యత్యాసం.

సమితిని సృష్టిస్తోంది

Python
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() అవసరం.

సమితిని సవరించడం

Python
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

కార్యకలాపాలను సెట్ చేయండి

Python
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), …) వీటిలో అదనంగా సెట్‌లను మాత్రమే కాకుండా, ఏదైనా మళ్ళించదగినదిగా అంగీకరించండి.

సభ్యత్వ పరీక్ష

Python
parole = {"ciao", "mondo", "python"}
"ciao" in parole       # True   O(1)
"java" not in parole   # True

పోలిక కోసం: list లోపల inతో శోధించడం O(n) మరియు చాలా పొడవుగా ఉంటుంది ఇది చాలా నెమ్మదిగా ఉందని జాబితా చేస్తుంది.

ఘనీభవించిన సెట్: మార్పులేని వెర్షన్

frozenset({1, 2, 3}) అనేది హ్యాషబుల్ వెర్షన్: ఇది డిక్ట్ కీ లేదా ఒక మరొక సెట్ యొక్క మూలకం.

కార్యకలాపాలు మరియు పనితీరును సెట్ చేయండి

సెట్‌లు హాష్ టేబుల్‌ల వలె అమలు చేయబడతాయి, ఇది సభ్యత్వ పరీక్షను (x in my_set) అత్యంత వేగంగా చేస్తుంది: ఇది స్థిరమైన సమయంలో నడుస్తుంది O(1), శోధనకు లీనియర్ సమయం పట్టే జాబితాల వలె కాకుండా O(n). అదనంగా, వారు యూనియన్ (|), ఖండన (&), మరియు తేడా (-) వంటి బీజగణిత కార్యకలాపాలకు మద్దతు ఇస్తారు.

దీనిని ప్రయత్నించండి

వ్యాయామం#python.m3.l4.e1
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

`సంఖ్యలు = [1, 2, 2, 3, 3, 3, 4]` జాబితాను అందించి, ప్రత్యేక విలువలతో (ఏదైనా క్రమంలో) `unique_items`ని రూపొందించి, ఆపై `count`ని len(unique_items)గా గణించండి. `కౌంట్`ని మూల్యాంకనం చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

సెట్(సంఖ్యలు) నకిలీలను తొలగిస్తుంది.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

వ్యాయామం సమీక్షించండి

వ్యాయామం#python.m3.l4.e2
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

`a = {1, 2, 3, 4}` మరియు `b = {3, 4, 5, 6}` అందించబడి, ఖండనను `common_items`గా మరియు a-bని `only_a`గా గణించండి. టుపుల్ `(సాధారణ_అంశాలు, మాత్రమే_ఎ)`ని మూల్యాంకనం చేయండి.

ఎడిటర్ లోడ్ అవుతోంది…
సూచనను చూపించు

& ఖండన, - తేడా.

3 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది

అదనపు సవాలు

వ్యాయామం#python.m3.l4.e3
ప్రయత్నాలు: 0లోడ్ అవుతోంది...

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 ప్రయత్నాల తర్వాత పరిష్కారం లభిస్తుంది