वहां उनके लिए समझदार नाम हो सकते हैं जो ऐसे नामों का उत्पादन करने के लिए होते हैं जिनके हैंश संघर्ष नहीं कर रहे हैं। हालांकि, ज्ञात ब्रह्मांड में सीपीथन डिक्ट्स पहले से ही सबसे अनुकूलित डेटा संरचनाओं में से एक हैं, अधिकांश इनपुट के लिए कुछ टकराव पैदा कर रहे हैं, अन्य बिल्टिन प्रकारों की हैश योजनाओं के साथ अच्छी तरह से काम कर रहे हैं, तेजी से संघर्ष को हल कर रहे हैं आदि। यह अत्यंत संभावना नहीं है कि आप ' किसी भी को लाभ मिलेगा, भले ही आपको कुछ मिल जाए, खासकर जब से सौ लुकअप वास्तव में बहुत से नहीं हैं। (3.1 गीगा के साथ एक laughablely कम बजट की दोहरी कोर सीपीयू खेल)
उदाहरण के लिए, इस timeit बेंचमार्क मेरी 4 साल पुरानी डेस्कटॉप मशीन पर चलने:
...>python -mtimeit --setup="d = {chr(i)*100: i for i in range(15)};\
k = chr(7)*100" "d[k]"
1000000 loops, best of 3: 0.222 usec per loop
और उन तार एक दर्जन से अधिक गुना बड़ा है एक वैरिएबल नाम के रूप में मैन्युअल रूप से टाइप करने के लिए दूरस्थ रूप से समझदार सब कुछ की तुलना में। लंबाई को 100 से 10 लीड्स तक घटाकर 0.0778 माइक्रोसॉन्ड प्रति लुकअप। अब अपने पृष्ठ की लोड गति को मापें और उनसे तुलना करें (वैकल्पिक रूप से, केवल सोचें कि पेज बनाने के दौरान आप वास्तव में कितना काम कर रहे हैं); और खाते में कैशिंग, ढांचे के ऊपर, और इन सभी चीजों को ध्यान में रखें।
इस संबंध में आप जो कुछ भी नहीं करते हैं वह प्रदर्शन-वार, अवधि, पूर्ण स्टॉप में अंतर डाल सकता है।
आप पूर्णांक कुंजी के साथ क्या कर सकते हैं - वे तार की तुलना में तेजी हो जाएगा। (यदि ऐसा है, तो आप शायद एक सूची का उपयोग कर सकते हैं।) –
@ स्वेन मार्नच, क्या ऐसा है? स्ट्रिंग के मुकाबले हैश फ़ंक्शन पूर्णांक के लिए तेज़ है? यदि ऐसा है तो यह दिलचस्प जानकारी है, क्या आपके पास कोई संदर्भ है? – juanchopanza
@juanchopanza: इंटेजर्स हैश स्वयं (कम से कम उन हैं जो मानों के लिए उपयोग किए गए पूर्णांक प्रकार की सीमा में हैं)। स्ट्रिंग्स को कम से कम एक बार फिर से चालू करना होगा। – delnan