क्या एक पायथन डिज़ाइन निर्णय (PEP) है जो एक छँटे हुए कंटेनर को पायथन में जोड़े जाने से रोकता है?
( OrderedDictप्रविष्टि क्रम द्वारा आदेशित होने के बाद से सॉर्ट किया गया कंटेनर नहीं है।)
क्या एक पायथन डिज़ाइन निर्णय (PEP) है जो एक छँटे हुए कंटेनर को पायथन में जोड़े जाने से रोकता है?
( OrderedDictप्रविष्टि क्रम द्वारा आदेशित होने के बाद से सॉर्ट किया गया कंटेनर नहीं है।)
जवाबों:
यह गुइडो के हिस्से पर एक सचेत डिजाइन निर्णय है (वह collectionsमॉड्यूल के अलावा के बारे में कुछ अनिच्छुक भी था )। उसका लक्ष्य "ऐसा करने के लिए एक स्पष्ट तरीका" को संरक्षित करना है जब यह अनुप्रयोगों के लिए डेटा प्रकारों के चयन की बात आती है।
मूल अवधारणा यह है कि यदि कोई उपयोगकर्ता यह महसूस करने के लिए पर्याप्त परिष्कृत है कि बिलिन प्रकार उनकी समस्या का सही समाधान नहीं है, तो वे एक उपयुक्त तीसरे पक्ष के पुस्तकालय को खोजने के कार्य पर भी निर्भर हैं।
यह देखते हुए कि सूची + छँटाई, सूची + हीपैक और सूची + बिसेक्ट उपयोग के कई मामलों को कवर करते हैं जो अन्यथा अंतर्निहित डेटा संरचनाओं पर निर्भर होंगे, और ब्लिस्टर जैसे पैकेज मौजूद हैं, इस स्थान में अधिक जटिलता जोड़ने के लिए एक बड़ी ड्राइव नहीं है मानक पुस्तकालय।
कुछ मायनों में, यह इस तथ्य के समान है कि मानक पुस्तकालय में कोई बहुआयामी सरणी नहीं है, इसके बजाय उस कार्य को न्यूमप्लस लोगों तक पहुंचाना है।
collections.Counterसॉर्ट सेट के रूप में इस्तेमाल किया जा सकता है। हालांकि यह कुशल नहीं हो सकता है।
collections.Counterएक क्रमबद्ध सेट का प्रतिनिधित्व करने के लिए अनसोल्ड और उपयुक्त नहीं है।
dictएक हैश टेबल है।
एक अजगर सॉर्टकॉनटेनर मॉड्यूल भी है जो सूची, तानाशाही और सेट प्रकारों को क्रमबद्ध करता है। यह ब्लिस्ट के समान है लेकिन शुद्ध-पायथन में और ज्यादातर मामलों में तेजी से लागू किया जाता है ।
>>> from sortedcontainers import SortedSet
>>> ss = SortedSet([3, 7, 2, 2])
>>> ss
SortedSet([2, 3, 7])
इसकी अन्य पैकेजों में भी कार्यक्षमता असामान्य है:
>>> from sortedcontainers import SortedDict
>>> sd = SortedDict((num, num) for num in range(100000))
>>> sd.iloc[-5] # Lookup the fifth-to-last key.
99995
डिस्क्लेमर: मैं सॉर्टकॉनटेनर्स मॉड्यूल का लेखक हूं।
पायथन सूचियों का आदेश दिया जाता है। यदि आप उन्हें छांटते हैं, तो वे उस तरह से बने रहते हैं। पायथन में 2.7 aOrderedDict स्पष्ट रूप से आदेशित शब्दकोश को बनाए रखने के लिए प्रकार जोड़ा गया था।
पायथन में सेट (एक संग्रह जिसमें सदस्यों को अद्वितीय होना चाहिए) भी है, लेकिन परिभाषा के अनुसार वे अनियंत्रित हैं। एक सेट को छाँटना सिर्फ एक रिटर्न देता है list।