documentation इसकी गारंटी नहीं देता है। क्या कोई अन्य जगह है जिसे इसे दस्तावेज किया गया है?क्या पाइथन सॉर्ट किया गया है() फ़ंक्शन स्थिर होने की गारंटी है?
मुझे लगता है कि यह स्थिर हो सकता है क्योंकि सूचियों पर सॉर्ट विधि guaranteed to be stable है (नोट्स 9वीं बिंदु: "पायथन 2.3 से शुरू, सॉर्ट() विधि स्थिर होने की गारंटी है"), और क्रमबद्ध रूप से समान है। हालांकि, मैं ऐसा कोई निश्चित स्रोत नहीं ढूंढ पा रहा हूं जो ऐसा कहता है।
उद्देश्य: मुझे प्राथमिक कुंजी के आधार पर सॉर्ट करने की आवश्यकता है और उन मामलों में द्वितीयक कुंजी भी है जहां प्राथमिक कुंजी दोनों रिकॉर्डों में बराबर है। अगर सॉर्ट किया गया() स्थिर होने की गारंटी है, तो मैं द्वितीयक कुंजी को सॉर्ट कर सकता हूं, फिर प्राथमिक कुंजी को सॉर्ट कर सकता हूं और मुझे जो परिणाम चाहिए उसे प्राप्त कर सकते हैं।
पीएस: किसी भी भ्रम से बचने के लिए, मैं "एक प्रकार स्थिर है अगर यह बराबर तुलना करने वाले तत्वों के सापेक्ष क्रम को न बदलने की गारंटी देता है" के अर्थ में स्थिर उपयोग कर रहा हूं।
मुझे पता चला है कि अगर मैं "प्राथमिक" सॉर्टिंग कुंजी बराबर होती हूं, तो यह "द्वितीयक" कुंजी द्वारा क्रमबद्ध हो जाती है, तो मैं टुपल्स या सूचियों को सॉर्ट कर रहा हूं। उदाहरण के लिए, 'क्रमबद्ध ([(1, 2), (1, 1)]) 'अनुक्रम' [(1, 1), (1, 2)]' उसी अनुक्रम/क्रम में मूल इनपुट लौटने की बजाय। स्थिरता की गारंटी नहीं होना चाहिए कि यह मूल '[(1, 2), (1, 1)] 'इनपुट वापस लौटना चाहिए? उस स्थिति में, आप स्पष्ट हो गए हैं और कहें 'क्रमबद्ध ([(1, 2), (1, 1)], कुंजी = लैम्ब्डा टी: टी [0]) ' – ray
क्या इस मामले में इसकी अपेक्षा नहीं है? पाइथन डिफ़ॉल्ट रूप से सभी तत्वों के माध्यम से tuples की तुलना करने जा रहा है, केवल पहले "प्राथमिक" नहीं। यदि आप केवल पहले तत्व को सॉर्ट करना चाहते हैं, तो आप 'key' पैरामीटर को स्पष्ट रूप से पास कर सकते हैं। –