"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > पायथन 2.7 और 3.3 के बीच डिक्शनरी ऑर्डरिंग व्यवहार क्यों बदल गया, और यह बाद में कैसे विकसित हुआ?

पायथन 2.7 और 3.3 के बीच डिक्शनरी ऑर्डरिंग व्यवहार क्यों बदल गया, और यह बाद में कैसे विकसित हुआ?

2024-11-02 को प्रकाशित
ब्राउज़ करें:152

Why Did the Dictionary Ordering Behavior Change Between Python 2.7 and 3.3, and How Did It Evolve Later?

पायथन 2.7 बनाम पायथन 3.3 में शब्दकोश क्रम: परिवर्तन क्यों?

पायथन 2.7 में, शब्दकोश कुंजियों का क्रम मनमाना लेकिन सुसंगत था . हालाँकि, यह व्यवहार पायथन 3.3 में बदल गया, जहाँ vars() जैसी विधियों से प्राप्त कुंजियों का क्रम गैर-नियतात्मक प्रतीत होता है। पायथन 3.3 में। कुछ सुरक्षा कमजोरियों को रोकने के लिए फिक्स ने हैश रैंडमाइजेशन की शुरुआत की। परिणामस्वरूप, शब्दकोशों और सेटों का पुनरावृत्ति क्रम अप्रत्याशित हो गया।

पायथन 3.6 में, तानाशाही वर्ग के लिए एक नया कार्यान्वयन पेश किया गया था जो सम्मिलन क्रम को संरक्षित करता है। नतीजतन, पायथन 3.7 के अनुसार, अब शब्दकोशों के लिए आदेश-संरक्षित व्यवहार की गारंटी है।

कुछ उपयोग मामलों में अप्रत्याशित स्थिरता

गैर-नियतात्मक आदेश के बावजूद, वहाँ हैं ऐसे मामले जहां एक सुसंगत आदेश बनाए रखा जाता है। उदाहरण के लिए:

list({str(i): i for i inrange(10)}.keys())

list({str(i): i for i in range(10)}.keys())

['0', '1', '2', '3', '4', '5', '6', '7', '8', '9 ']

['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']
विज्ञप्ति वक्तव्य यह आलेख यहां पुनर्मुद्रित है: 1729494555 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए स्टडी_गोलंग@163.कॉम से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3