सबसे पहले, मैं अफवाह है कि आप प्रारंभ में एक शब्दकोश का आकार सेट कर सकते हैं सुना है, लेकिन मैं किसी भी दस्तावेज या पीईपी यह कैसे किया जा जाएगा का वर्णन कभी नहीं देखा है।
इस के साथ
मन में मैं अपने आइटमों की मात्रा, नीचे वर्णित पर एक विश्लेषण भाग गया। हालांकि प्रत्येक बार शब्दकोश का आकार बदलने में कुछ समय लग सकता है, जब तक कि आप इसके प्रदर्शन की जांच नहीं कर लेते, कम से कम जब तक मैं इसके बारे में चिंता किए बिना आगे बढ़ने की सिफारिश करता हूं।
दो नियमों का निर्धारण करने का आकार बदलने के तत्वों और आकार बदलने के कारक की संख्या है में चिंता का विषय है। एक शब्दकोश का आकार बदल जाएगा जब यह 2/3 अंक पर डालने वाले तत्व के अतिरिक्त 2/3 भरा होगा। 50,000 तत्वों के नीचे यह 4 के कारक से बढ़ेगा, उस राशि के ऊपर 2 के कारक से। 10,000,000 तत्वों (2^23 और 2^24 के बीच) के अपने अनुमान का उपयोग करके आपका शब्दकोश 15 बार (50k से 7 गुना, ऊपर 8 बार)। एक और आकार सिर्फ 11,100,000 होगा।
आकार बदला जा रहा है और hashtable में मौजूदा तत्वों की जगह में कुछ समय लग रहा है, लेकिन मुझे आश्चर्य है अगर आप जो कुछ भी आप पास के कोड में हो रहा है के साथ यह नोटिस चाहते हैं। मैंने बस एक सीमा सूट को प्रत्येक सीमा के साथ पांच स्थानों पर 2^3 से 2^24 के शब्दकोश आकार से सम्मिलित करते हुए, और "सीमा" जोड़ों को "गैर-सीमा" जोड़ों से अधिक औसत 0.4 नैनोसेकंड जोड़ दिया। यह 0.17% लंबा है ... शायद स्वीकार्य है। सभी परिचालनों के लिए न्यूनतम 0.2085 माइक्रोसॉन्ड था, और अधिकतम 0.2412 माइक्रोसॉन्ड था।
आशा इस व्यावहारिक है, और अगर आप अपने कोड के प्रदर्शन की जांच कर अनुवर्ती एक संपादन के साथ कृपया! शब्दकोश internals के लिए मेरे प्राथमिक संसाधन PyCon 2010 ब्रैंडन रोड्स द्वारा दिए गए शानदार बात थी: The Mighty Dictionary
स्रोत
2010-06-11 07:03:17
[पाइथन - प्रारंभिक क्षमता के साथ एक सूची बनाएं] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/311775/python-create-a-list-with-initial-capacity) – msw
इससे सहमत न हों डुप्लिकेट हिस्सा। एक सूची एक सूची के समान नहीं है। –
संभव डुप्लिकेट [पायथन में एक शब्दकोश के लिए प्रारंभिक आकार कैसे सेट करें?] (Http://stackoverflow.com/questions/1298636/how-to-set-initial-size-for-a-dictionary-in-python) – psmears