सेट्स और सूचियों को पाइथन में अलग-अलग संभाला जाता है, और दोनों के साथ काम करने के लिए कोई समान तरीका नहीं लगता है। उदाहरण के लिए, set
पर कोई आइटम जोड़कर add
विधि का उपयोग करके किया जाता है, और list
के लिए यह append
विधि का उपयोग करके किया जाता है। मुझे पता है कि इसके पीछे विभिन्न अर्थशास्त्र हैं, लेकिन वहां सामान्य अर्थशास्त्र भी हैं, और अक्सर कुछ संग्रह के साथ काम करने वाला एल्गोरिदम अंतरों की तुलना में समानताओं के बारे में अधिक परवाह करता है। सी ++ एसटीएल दिखाता है कि यह काम कर सकता है, तो पाइथन में ऐसी कोई अवधारणा क्यों नहीं है?पायथन में संग्रह समान रूप से क्यों नहीं संभाले जाते हैं?
संपादित करें: C++ में मैं एक (लगभग) संग्रह की मनमानी प्रकार, सूचियों और सेटों सहित में मान संग्रहीत करने के लिए एक output_iterator
उपयोग कर सकते हैं। मैं एक एल्गोरिदम लिख सकता हूं जो इस तरह के इटरेटर को तर्क के रूप में लेता है और इसमें तत्व लिखता है। एल्गोरिदम तब कंटेनर (या अन्य डिवाइस, एक फ़ाइल हो सकता है) के लिए पूरी तरह से अज्ञेयवादी है जो इटेटरेटर का समर्थन करता है। यदि बैकिंग कंटेनर एक सेट है जो डुप्लिकेट को अनदेखा करता है, तो वह कॉलर का निर्णय होता है। मेरी विशिष्ट समस्या यह है कि अब यह कई बार हुआ है कि मैंने उदाहरण के लिए एक निश्चित कार्य के लिए list
का उपयोग किया और बाद में फैसला किया कि set
अधिक उपयुक्त है। अब मुझे अपने कोड में कई स्थानों पर append
add
को बदलना होगा। मैं बस सोच रहा हूं कि क्यों पाइथन के ऐसे मामलों के लिए कोई अवधारणा नहीं है।
"सेट्स और सूचियों को पाइथन में अलग-अलग संभाला जाता है" क्योंकि वे ** अनिवार्य रूप से ** अलग हैं। उन्हें "वर्दी" नहीं बनाया जा सकता है - ठीक है - वे फ़्लोटिंग-पॉइंट और फ़ाइल के रूप में अलग हैं। "मुझे पता है कि विभिन्न अर्थशास्त्र हैं"। ठीक है। आप क्या पूछ रहे थे? विशेष रूप से? क्या आप जो चाहते हैं उसके बारे में अधिक विस्तृत उदाहरण दे सकते हैं? –
@ एसएलॉट: मैंने एक उदाहरण और कुछ स्पष्टीकरण जोड़ा। –
"एक सेट जो डुप्लिकेट को अनदेखा करता है"? क्या? वो क्या है? परिभाषा के अनुसार एक सेट - डुप्लिकेट नहीं हो सकता है। मैं समझ नहीं पा रहा हूं कि आप क्या पूछ रहे हैं। –