Computer >> कंप्यूटर ट्यूटोरियल >  >> प्रोग्रामिंग >> Python

पायथन Sets: एक संपूर्ण गाइड

अक्सर, जब आप डेटा के साथ काम कर रहे होते हैं, तो आप डेटा की एक सूची स्टोर करना चाहेंगे जिसमें कोई डुप्लिकेट मान नहीं हो सकते, और जिनके मानों को बदला नहीं जा सकता। उदाहरण के लिए, यदि आप ग्रॉसरी स्टोर पर खरीदारी IDs की सूची बना रहे हैं, तो आप चाहेंगे कि प्रत्येक ID यूनिक हो, और आप नहीं चाहेंगे कि कोई भी आपकी सूची में मानों को बदल सके।

यहीं पर पायथन सेट ऑब्जेक्ट काम आता है। एक सेट आइटम्स का एक अनऑर्डर्ड संग्रह है जिसमें केवल यूनिक मान हो सकते हैं।

यह ट्यूटोरियल उदाहरणों के संदर्भ में पायथन सेट्स की मूल बातें, और आप सेट पर सामान्य ऑपरेशन्स जैसे मान जोड़ना और हटाना कैसे कर सकते हैं, इस पर चर्चा करेगा।

पायथन Sets

पायथन बिल्ट-इन सेट डेटा संरचना गणित में सेट्स के विचार के समान है।

पायथन सेट्स शून्य या अधिक तत्वों को समाहित कर सकते हैं, और सेट में प्रत्येक तत्व के लिए कोई परिभाषित क्रम नहीं है। सेट के भीतर स्टोर किया गया प्रत्येक तत्व यूनिक है, इसलिए कोई डुप्लिकेट मौजूद नहीं हो सकते, और सेट में प्रत्येक व्यक्तिगत मान को बदला नहीं जा सकता।

हालांकि सेट में व्यक्तिगत मानों को बदला नहीं जा सकता, सेट स्वयं को बदला जा सकता है। इसका मतलब है कि हम अपने सेट से आइटम्स जोड़ या हटा सकते हैं।

सेट संरचना उपयोगी है क्योंकि यह कई गणितीय संक्रियाओं के साथ आती है जिनका उपयोग हम सेट में स्टोर किए गए डेटा के साथ काम करने के लिए कर सकते हैं।

पायथन सेट बनाएं

पायथन में, सेट्स को आइटम्स (या "एलिमेंट्स") की सूची के रूप में परिभाषित किया जाता है जो कॉमा से अलग होते हैं। सूची को तब कर्ली ब्रेसेस ({}) के भीतर संलग्न किया जाता है।

पायथन सेट्स किसी भी संख्या में आइटम्स स्टोर कर सकते हैं, और सेट के भीतर प्रत्येक आइटम विभिन्न डेटा प्रकारों का उपयोग कर सकता है। इसलिए, एक सेट इंटीजर और स्ट्रिंग दोनों को स्टोर कर सकता है, या स्ट्रिंग, फ्लोट, और टपल। हालांकि, सेट्स म्यूटेबल डेटा प्रकारों को स्टोर नहीं कर सकते, जैसे दूसरा सेट, डिक्शनरी, या सूची।

मान लीजिए हम एक सेट बनाना चाहते हैं जो अंग्रेजी क्लास के लिए एक छात्र द्वारा जमा किए गए होमवर्क असाइनमेंट्स की सूची स्टोर करता है। हम निम्न कोड का उपयोग करके यह सेट बना सकते हैं:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
print(assignments)

हमारा कोड लौटाता है:

{'Worksheet #5', 'Worksheet #4', 'Worksheet #7', 'End of Topic Review #2'}

हमारे कोड में, हमने assignments नामक एक सेट परिभाषित किया है जिसमें चार मान हैं। फिर, हमने असाइनमेंट सेट की सामग्री को कंसोल पर प्रिंट किया। आप देख सकते हैं कि हमारे मान रैंडम क्रम में लौटाए गए हैं क्योंकि सेट्स अपने आइटम्स को किसी विशेष क्रम में स्टोर नहीं करते।

सेट को बदलना

जब आप एक सेट बना लेते हैं, तो आप सेट में आइटम्स के मानों को बदल नहीं सकते। हालांकि, आप सेट में आइटम्स जोड़ और हटा सकते हैं।

सेट में आइटम्स जोड़ें

पायथन सेट में एलिमेंट जोड़ने के लिए, आप add() मेथड का उपयोग कर सकते हैं। मान लीजिए एक छात्र ने अभी Worksheet #8 जमा किया है और हम अपने सेट को अपडेट करना चाहते हैं ताकि छात्र का असाइनमेंट जमा होना ट्रैक हो सके। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
assignments.add("Worksheet #8")
print(assignments)

हमारा कोड लौटाता है:

{'Worksheet #8', 'Worksheet #4', 'Worksheet #5', 'End of Topic Review #2', 'Worksheet #7'}

जैसा कि आप देख सकते हैं, Worksheet #8 हमारे सेट में जोड़ा गया है।

इसके अलावा, यदि आप सेट में कई आइटम्स जोड़ना चाहते हैं, तो आप update() मेथड का उपयोग कर सकते हैं। update() मेथड उन आइटम्स की सूची को पैरामीटर के रूप में स्वीकार करता है जिन्हें आप सेट में जोड़ना चाहते हैं, फिर उन आइटम्स को सेट में जोड़ता है।

मान लीजिए एक छात्र ने वर्कशीट #8 और #9 दोनों जमा किए हैं। हम अपने सेट को इन नए असाइनमेंट्स के जमा होने को प्रतिबिंबित करने के लिए इस कोड का उपयोग करके बदल सकते हैं:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7", "End of Topic Review #2"}
assignments.update(["Worksheet #8", "Worksheet #9"])
print(assignments)

हमारा कोड लौटाता है:

{'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}

अब हमारे सेट में दो नए मान हैं: Worksheet #8 और Worksheet #9।

सेट से एलिमेंट्स हटाएं

सेट से एलिमेंट हटाने के लिए, आप discard() या remove() का उपयोग कर सकते हैं।

discard() फंक्शन सेट से एक आइटम हटाता है और यदि कोई आइटम सेट में मौजूद नहीं है तो कुछ नहीं लौटाता। remove() फंक्शन सेट से एक आइटम हटाने का प्रयास करेगा, और यदि वह आइटम मौजूद नहीं है, तो एक त्रुटि उठाई जाएगी।

मान लीजिए हम Worksheet #9 को हमारे छात्र के होमवर्क असाइनमेंट्स के रिकॉर्ड से हटाना चाहते हैं क्योंकि उनसे असाइनमेंट दोबारा करने के लिए कहा गया है। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
assignments.discard("Worksheet #9")
print(assignments)

हमारा कोड लौटाता है:

{'End of Topic Review #2', 'Worksheet #5', 'Worksheet #4', 'Worksheet #8', 'Worksheet #7'}

आप देख सकते हैं कि मान Worksheet #9 हमारे सेट से हटा दिया गया है। हमने इसे discard() मेथड का उपयोग करके पूरा किया।

सेट क्लियर करें

सेट को क्लियर करने के लिए, आप clear() मेथड का उपयोग कर सकते हैं। मान लीजिए हम छात्र के असाइनमेंट्स का रिकॉर्ड मिटाना चाहते हैं क्योंकि यह वर्ष का अंत है और हमें अब जानकारी स्टोर करने की आवश्यकता नहीं है। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
assignments.clear()
print(assignments)

हमारा कोड लौटाता है: {}। यह हमारे खाली सेट को दर्शाता है।

सेट की लंबाई लौटाएं

यह जानने के लिए कि सेट में कितने आइटम्स स्टोर हैं, आप len() मेथड का उपयोग कर सकते हैं।

मान लीजिए हम जानना चाहते हैं कि छात्र ने कितने होमवर्क असाइनमेंट्स जमा किए हैं। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

assignments = {'Worksheet #9', 'End of Topic Review #2', 'Worksheet #8', 'Worksheet #7', 'Worksheet #4', 'Worksheet #5'}
print(len(assignments))

हमारा कोड लौटाता है: 6। हमारे कोड में, हम पहले assignments नामक एक सेट घोषित करते हैं। फिर, हम assignments सेट में कितने आइटम्स स्टोर हैं यह जानने के लिए len() मेथड का उपयोग करते हैं।

पायथन सेट ऑपरेशन्स

डेटा स्टोर करने के लिए सेट का उपयोग करने के फायदों में से एक यह है कि सेट्स मैथेमेटिकल सेट ऑपरेशन्स का समर्थन करते हैं। आइए तीन मुख्य सेट ऑपरेशन्स कैसे काम करते हैं, इसके माध्यम से चलते हैं।

ये सेट ऑपरेशन्स सेट की सामग्री को नहीं बदलते। इसके बजाय, वे मौजूदा सेट पर गणना करते हैं।

सेट यूनियन

union() मेथड हमें दो सेट्स से सभी एलिमेंट्स का एक सेट बनाने की अनुमति देता है।

मान लीजिए हमारे पास छात्र के असाइनमेंट्स की दो सूचियाँ हैं जिन्हें हम एक साथ मर्ज करना चाहते हैं। एक सूची में छात्र के होमवर्क पर डेटा है, और दूसरी में छात्र द्वारा पूरे किए गए निबंध असाइनमेंट्स की सूची है। हम इन सूचियों को इस कोड का उपयोग करके मर्ज कर सकते हैं:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}
homework = assignments.union(essays)
print(homework)

हमारा कोड लौटाता है:

{'Worksheet #7', 'Essay #2', 'Worksheet #4', 'Essay #1', 'Worksheet #5'}

हमारे कोड में, हम अपने दो सेट्स को एक साथ मर्ज करने के लिए union() मेथड का उपयोग करते हैं। हम नए-मर्ज किए गए सेट के मान को homework वेरिएबल को असाइन करते हैं। फिर, हम homework वेरिएबल का मान प्रिंट करते हैं।

वैकल्पिक रूप से, हम निम्न कोड का उपयोग कर सकते थे:

assignments = {"Worksheet #4", "Worksheet #5", "Worksheet #7"}
essays = {"Essay #1", "Essay #2"}
print(assignments | essays)

"|" ऑपरेटर एक यूनियन सेट ऑपरेशन करता है। हमारा कोड मर्ज किया गया सेट लौटाता है:

{'Essay #2', 'Worksheet #4', 'Worksheet #5', 'Essay #1', 'Worksheet #7'}

सेट इंटरसेक्शन

intersection() मेथड आपको दो सेट्स के बीच सामान्य एलिमेंट्स की सूची उत्पन्न करने की अनुमति देता है।

मान लीजिए हमारे पास छात्र द्वारा जमा किए गए निबंधों की सूची है, और जारी किए गए निबंधों की सूची है। यदि हम जानना चाहते हैं कि छात्र ने कौन से निबंध अभी तक जमा नहीं किए हैं, तो हम इंटरसेक्शन मेथड कर सकते हैं।

यहाँ वह कोड है जिसका हम उपयोग करेंगे:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}
due = essays_handed_in.intersection(essays_issued)
print(due)

हमारा कोड लौटाता है:

{'Essay #1', 'Essay #2'}

इस उदाहरण में, हम essays_handed_in और essays_issued सेट्स दोनों में मौजूद सभी एलिमेंट्स को खोजने के लिए intersection() मेथड का उपयोग करते हैं। हम इंटरसेक्शन ऑपरेशन के परिणाम को due वेरिएबल को असाइन करते हैं, जिसे हम तब कंसोल पर प्रिंट करते हैं।

इसके अलावा, हम सेट इंटरसेक्शन ऑपरेशन करने के लिए & ऑपरेटर का उपयोग कर सकते हैं। इसलिए, यदि हम अपने पहले के दो सेट्स पर इंटरसेक्शन करना चाहते थे, तो हम इस कोड का उपयोग कर सकते थे:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_issued = {"Essay #1", "Essay #2", "Essay #3"}
print(essays_handed_in & essays_issued)

हमारा कोड लौटाता है:

{'Essay #1', 'Essay #2'}

सेट डिफरेंस

difference() मेथड आपको यह पता लगाने की अनुमति देता है कि कौन से एलिमेंट्स एक सेट में मौजूद हैं जो दूसरे सेट में मौजूद नहीं हैं।

मान लीजिए हम उन सभी निबंधों की सूची उत्पन्न करना चाहते हैं जो छात्र ने जमा किए हैं और जिन्हें अभी तक ग्रेड नहीं किया गया है। हम निम्न कोड का उपयोग करके ऐसा कर सकते हैं:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
final = essays_handed_in.difference(essays_graded)
print(final)

हमारा कोड लौटाता है:

{"Essay #2"}

इस कोड में, हमने essays_handed_in और essays_graded सेट्स के बीच अंतर खोजने के लिए difference() मेथड का उपयोग किया। वैकल्पिक रूप से, हम - ऑपरेटर का उपयोग कर सकते थे, जैसे:

essays_handed_in = {"Essay #1", "Essay #2"}
essays_graded = {"Essay #1"}
print(essays_handed_in - essays_graded)

हमारा कोड लौटाता है:

{"Essay #2"}

हमारे कोड में वही परिणाम लौटाया गया है। लेकिन difference() सेट मेथड का उपयोग करने के बजाय, हमने - ऑपरेटर का उपयोग किया, जो दो सेट्स के बीच अंतर खोजने के लिए जांच करता है।

निष्कर्ष

पायथन सेट डेटा संरचना आपको आइटम्स के अनऑर्डर्ड संग्रह को स्टोर करने की अनुमति देती है।

सेट में प्रत्येक आइटम यूनिक होना चाहिए, इसलिए कोई डुप्लिकेट मौजूद नहीं हो सकते, और सेट की सामग्री को एक बार सेट में जोड़े जाने के बाद बदला नहीं जा सकता।

इस ट्यूटोरियल में उदाहरणों के संदर्भ में पायथन सेट्स की मूल बातें और सेट्स द्वारा प्रदान किए जाने वाले मुख्य ऑपरेशन्स पर चर्चा की गई।

हमने केवल सतह को खरोंचा है कि आप सेट्स के साथ क्या कर सकते हैं - अभी और भी बहुत कुछ है जिसे आप एक्सप्लोर कर सकते हैं - लेकिन हमने उन मुख्य कौशलों को कवर किया जिन्हें आपको सेट्स के साथ प्रभावी ढंग से काम करने के लिए जानना आवश्यक है। अब आप पायथन set() मेथड का उपयोग एक प्रो की तरह करना शुरू करने के लिए तैयार हैं!

  1. - पायथन सेट टाइप्स

    सेट्स मूल रूप से डिस्टिंक्ट हैश-टेबल ऑब्जेक्ट्स का अनऑर्डर्ड कलेक्शन होते हैं। हम सेट का उपयोग सेट यूनियन, इंटरसेक्शन, डिफरेंस जैसे गणितीय ऑपरेशन्स के लिए कर सकते हैं। हम किसी कलेक्शन से डुप्लिकेट्स हटाने के लिए भी सेट का उपयोग कर सकते हैं।सेट एलिमेंट पोजिशन रिकॉर्ड नहीं करता। यह इंडेक्सिंग, स्लाइसि

  1. - पायथन सेट ऑपरेशन

    सेट क्या है? गणित में, एक सेट विशिष्ट वस्तुओं का संग्रह है, जिसे अपने आप में एक वस्तु माना जाता है। उदाहरण के लिए, संख्याएं 2, 4, और 6 अलग-अलग मानी जाती हैं, लेकिन जब उन्हें सामूहिक रूप से माना जाता है तो वे आकार तीन का एक सेट बनाते हैं, जिसे {2,4,6} लिखा जाता है। सेट पर ऑपरेशन ऑपरेशनसंकेतनअर्थ इं

  1. - Python Sets समझाया: विशिष्टता, अपरिवर्तनीयता, और ऑपरेशन्स

    Python Sets एक कलेक्शन टाइप है जिसमें अनऑर्डर्ड कलेक्शन होता है यूनिक और इम्यूटेबल ऑब्जेक्ट्स का। दूसरे शब्दों में, एक Python सेट डुप्लिकेट आइटम्स नहीं रख सकता और एक बार सेट बन जाने के बाद, आइटम्स बदल नहीं सकते। नोट: सेट के आइटम्स इम्यूटेबल हैं, इसका मतलब है कि हम आइटम्स को बदल नहीं सकते। हालांकि, स