मॉड्यूल पाठ (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तुलना के लिए: list के अंदर in के साथ खोज करना O(n) है और लंबे समय तक
सूचियाँ यह बहुत धीमी है।
जमे हुए सेट: अपरिवर्तनीय संस्करण
frozenset({1, 2, 3}) धोने योग्य संस्करण है: यह एक तानाशाही कुंजी या एक हो सकता है
दूसरे सेट का तत्व.
संचालन और प्रदर्शन सेट करें
सेट को हैश तालिकाओं के रूप में कार्यान्वित किया जाता है, जो सदस्यता परीक्षण (x in my_set) को बहुत तेज़ बनाता है: यह निरंतर समय O(1) में चलता है, उन सूचियों के विपरीत जहां खोज में रैखिक समय लगता है O(n)। इसके अतिरिक्त, वे यूनियन (|), इंटरसेक्शन (&), और अंतर (-) जैसे बीजीय संचालन का समर्थन करते हैं।
इसे अजमाएं
सूची `अंक = [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` में करें। टपल का मूल्यांकन करें `(common_items, केवल_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 प्रयासों के बाद समाधान उपलब्ध है