मैं दूसरों के साथ एक पूर्णांक कुंजी और सूची मूल्यों के साथ एक शब्दकोश बना रहा हूं। इस शब्दकोश में मूल्य जोड़ना वास्तविक बाधा प्रतीत होता है हालांकि मैं सोच रहा था कि मेरे कोड को तेज़ करने का कोई तरीका हो सकता है या नहीं।पायथन: सूची मूल्यों के साथ शब्दकोश में जोड़ने का इष्टतम तरीका
class myClass():
def __init__(self):
self.d = defaultdict(list)
def addValue(self, index, value):
self.d[index].append(value)
क्या यह वास्तव में ऐसा करने का सबसे अच्छा तरीका है? मुझे वास्तव में मूल्यों के क्रम की परवाह नहीं है, इसलिए शायद तेजी से संलग्न होने के साथ वहां एक और अधिक उपयुक्त डेटा संरचना है। फिर फिर, 'संलग्न करें' मुख्य समस्या प्रतीत नहीं होती है, क्योंकि अगर मैं बस खाली सूची में जोड़ता हूं, तो कोड बहुत तेज होता है। मुझे लगता है कि यह पहले संग्रहीत सूची की लोडिंग है जो अधिकतर समय लेती है?
मुझे पता चला है कि समस्या dict में नहीं है, लेकिन सूची संलग्न में (हालांकि मैं अपने मूल पोस्ट है, जिसके लिए मैं माफी माँगता हूँ में अन्यथा दावा किया)। यह समस्या पायथन के कचरा कलेक्टर में एक बग के कारण है, जिसे अच्छी तरह से this other question पर समझाया गया है। सभी मान जोड़ने से पहले जीसी को अक्षम करना और फिर इसे पुनः सक्षम करना, प्रक्रिया को तेज़ी से बढ़ाता है!
किसी सूची में आइटम जोड़ना और किसी ऑब्जेक्ट या किसी ऑब्जेक्ट से मूल्य प्राप्त करना कोई समय नहीं लेता है। किसी प्रोग्राम को तेज़ी से बढ़ाने के लिए आपको प्रोफाइल के यादृच्छिक टुकड़ों को बदलकर प्रोफाइलिंग द्वारा बाधा मिलती है। –
क्या मौजूदा कुंजी में आइटम्स को नए कुंजियों में मूल्य जोड़ने से काफी तेज है? –
मुझे पता चला कि समस्या dict में नहीं है, लेकिन सूची में शामिल है (हालांकि मैंने अन्यथा मेरे मूल पोस्ट में दावा किया है, जिसके लिए मैं क्षमा चाहता हूं)। तब मुझे http://stackoverflow.com/questions/2473783/is-there-a-way-to-circumvent-python-list-append-becoming-progressively-lower पर मेरे प्रश्न का उत्तर मिला। चूंकि मैं इस साइट पर नया हूं, मुझे नहीं पता कि इस मामले में मानक प्रक्रिया क्या है: क्या मुझे अपनी मूल पोस्ट को हटा देना चाहिए? या उपर्युक्त विवरण और पोस्ट का जवाब जोड़ें? – niefpaarschoenen