2015-08-20 5 views
5

set("a") और sets.Set("a") के बीच क्या अंतर है? उनके प्रकार अलग हैं, लेकिन वे एक ही काम करते हैं।सेट बनाम सेट पायथन

मुझे इसके बारे में कोई संसाधन ऑनलाइन नहीं मिल रहा है, लेकिन मैंने दोनों उदाहरणों में उपयोग किए हैं।

उत्तर

3

निर्मित सेट() पुराने सेट पर आधारित था। सेट() और तेज़ी से चलता है।
दोनों एक ही काम करते हैं, हालांकि पाइथन 3 में 'सेट' मॉड्यूल अब मौजूद नहीं है।

यहाँ जवाब सीधे अजगर 2 लाइब्रेरी से है:
निर्मित सेट और frozenset प्रकार सबक के आधार पर डिजाइन किए गए थे सेट मॉड्यूल से सीखा है। मुख्य अंतर हैं:

सेट और अपरिवर्तनीय सेट का नाम बदलकर और फ्रोजनसेट किया गया।

- बेससेट के बराबर नहीं है। इसके बजाय, isinstance (x, (set, frozenset) का उपयोग करें)।

- बिल्ट-इन्स के लिए हैश एल्गोरिदम अधिकांश डेटासेट के लिए काफी बेहतर (कम टक्कर) करता है।

- अंतर्निहित संस्करणों में अधिक स्थान कुशल अचार हैं।

- अंतर्निहित संस्करणों में union_update() विधि नहीं है। इसके बजाय, अद्यतन() विधि का उपयोग करें जो बराबर है।

- अंतर्निहित संस्करणों में _repr (sorted = True) विधि नहीं है। इसके बजाय, अंतर्निहित repr() और क्रमबद्ध() फ़ंक्शंस का उपयोग करें: repr (सॉर्ट किया गया)।

- अंतर्निहित संस्करण में स्वचालित रूप से अपरिवर्तनीय रूपांतरण के लिए प्रोटोकॉल नहीं है। कई लोगों ने इस सुविधा को भ्रमित करने के लिए पाया और समुदाय में किसी ने भी इसके लिए असली उपयोग नहीं पाया।

11

आपने इस पायथन 3 को टैग किया है, तो अंतर यह है कि sets मौजूद नहीं है। set का प्रयोग करें।

पायथन 2 में, अंतर यह है कि sets बहिष्कृत है। यह पुराना, धीमा, अच्छा संस्करण नहीं है। set का प्रयोग करें। यह documentation for the sets module में समझाया गया है, जो तुरंत Python sets की खोज पर आता है।

0

वहाँ ज्यादा अंतर नहीं है, और आप builtin set या frozenset, बजाय sets मॉड्यूल का उपयोग करना चाहिए।

सेट मॉड्यूल documentation itself says -

संस्करण 2.6 के बाद से पदावनत: निर्मित सेट/frozenset प्रकार इस मॉड्यूल की जगह।

और पाइथन 3.x, केवल पायथन 2 में sets मॉड्यूल नहीं है।

संबंधित मुद्दे