आपने गणित में सेट्स पढ़े होंगे तो उसमें सेट्स के साथ जिस प्रकार के ऑपरेशन्स किये जाते हैं वही सब पायथॉन में भी किये जाते हैं. जैसे Union, Intersection, Difference
हमने लिस्ट्स सिखा, टुपल सिखा और डिक्शनरी सीखी. लिस्ट्स बनाते समय हम [ ] का इस्तेमाल करते हैं, टुपल बनाते समय हम ( ) का इस्तेमाल करते हैं और डिक्शनरी के लिए हम { } का इस्तेमाल करते हैं.
सेट बनाने के लिये set([ ]) इस नोटेशन का इस्तेमाल होता है. नार्मल ब्रॅकेट के भीतर स्क्वेअर ब्रॅकेट. इसे { } इस तरह के ब्रॅकेट में भी लिखा जाता है.
सेट बनाते समय अगर आपने गलती से एक ही नाम को कई बार लिखा भी तो भी उसे अपने आप हटा दिया जाता है.
हम फलों के नामों का एक सेट बनाते हैं
fruits = {"Apples","Bananas","Lemons","Pineapples","Watermelons","Grapes","Pears","Dates","Pomegranates"}
यहाँ मैंने नाम लिखने के लिए " " डबल क्वोट्स का इस्तेमाल किया है, आप चाहो तो इसे ' ' सिंगल क्वोट्स में भी लिख सकते हो.
अब हम ड्राई फ्रूट्स के नामों का एक सेट बनाते हैं
dry_fruits = {"Almonds","Cashews","Dates"}
और खट्टे फलों के नामों का एक
citrus_fruits = {"Lemons","Pineapples"}
गणित के सेट में सब सेट और सुपर सेट होता है. वही यहाँ पर भी लागु होता है.
हम एक सेट दुसरे का सब सेट हैं या नहीं ये जांचने के लिए issubset() फंक्शन का इस्तेमाल कर सकते हैं
dry_fruits.issubset(fruits)
ये कमांड जाँच करेगी कि, dry_fruits ये सेट fruits सेट का सब सेट है या नहीं
यहाँ पर dry_fruits में "Cashews" और "Almonds" ये दो नाम हैं जो हमने fruits लिस्ट में नहीं लिखे हैं. इसलिए dry_fruits ये सेट हमारे fruits सेट का सब सेट नहीं होगा, इसलिए हमें False आउटपुट मिलेगा
अब हम ये citrus_fruits के साथ चेक करते हैं.
citrus_fruits.issubset(fruits)
यहां पर citrus_fruits के सभी नाम fruits में भी मौजूद हैं इसलिए हमें Trueआउटपुट मिलेगा.
We can add things to a list after it has been created.
हम लिस्ट बन जाने के बाद भी उसमें नए नाम जोड़ सकते हैं
fruits.add("Guava")
इस कमांड से "Guava" नाम फ्रूट्स सेट में जुड़ जाएगा
difference इस फंक्शन से हम दो सेट्स के बीच का फर्क जान सकते हैं.
dry_fruits.difference(fruits)
{'Almonds', 'Cashews'}
fruits.difference(dry_fruits)
{'Apples', 'Pears', 'Bananas', 'Watermelons', 'Pomegranates', 'Grapes', 'Pineapples', 'Lemons'}
fruits.difference(dry_fruits).difference(citrus_fruits)
हम एक से ज्यादा सेट्स भी इसमें इस्तेमाल कर सकते हैं. difference फंक्शन सीरत दो सेट्स के भीतर के फर्क को बताएगा लेकिन वो किसी सेट में चेंज नहीं करेगा. लेकिन एक ऐसा फंक्शन है जो पहले सेट में से वो सभी एलिमेंट्स निकाल देगा जो दुसरे सेट में हैं difference_update
fruits.difference_update(dry_fruits)
ये कमांड fruits सेट में से dry_fruits के नाम निकाल देगा
हम दो सेट्स को जोड़ कर देखने के लिए union फंक्शन का इस्तेमाल कर सकते हैं. ये फंक्शन सिर्फ डिस्प्ले करेगा. सेट्स में कोई चेंज नहीं करेगा
fruits.union(dry_fruits)
or
fruits | dry_fruits
इसी तरह intersection नाम का एक फंक्शन है जो दो सेट्स के अन्दर जो कॉमन एलिमेंट्स हैं सिर्फ उनको दिखाएगा
x = {5, 3, 4, 2, 6}
y = {5, 1, 11, 9, 2}
x.intersection(y) ये कमांड ऐसा रिझल्ट देगा
{2, 5}
हमने सेट्स बनाने के लिए { } का इस्तेमाल किया है. लेकिन सेट्स को डिफाइन करने के लिए set([ ]) इसका भी इस्तेमाल किया जाता है जैसे
weekdays = set(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"])
इस तरह का नोटेशन तब काम आता है जब हमें ऐसा सेट बनाना है जिसमें हमें फिर कोई चेंज नहीं करना है. यानि हमें अपने सेट को राईट प्रोटेक्ट करना है ताकि उसे गलती से एडिट ना किया जा सके. इसके लिए frozenset([ ]) का इस्तेमाल किया जाता है
weekdays = frozenset(["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday","Sunday"])
अब अगर आप इस सेट में कुछ जोड़ना चाहें या कोई एलिमेंट डिलीट करना चाहें तो नहीं कर पाएंगे.
weekdays.remove("Monday")
यहाँ हमें ऐसा एरर दिखेगा
AttributeError: 'frozenset' object has no attribute 'remove'
कोई टिप्पणी नहीं:
एक टिप्पणी भेजें
टिप्पणी: केवल इस ब्लॉग का सदस्य टिप्पणी भेज सकता है.