मैं एक अजगर datetime टाइमस्टैम्प और एक बड़े dict (इंडेक्स) है जहां कुंजी timestamps हैं और मूल्यों कुछ अन्य जानकारी मैं में दिलचस्पी रखता हूँ कर रहे हैं पता लगानेअजगर -। निकटतम टाइमस्टैम्प
मैं datetime को खोजने के लिए (की जरूरत है कुंजी) इंडेक्स में जो टाइमस्टैम्प के सबसे नज़दीक है, जितनी संभव हो उतनी कुशलता से।
पल मैं की तरह कुछ कर रहा हूँ पर:
for timestamp in timestamps:
closestTimestamp = min(index,key=lambda datetime : abs(timestamp - datetime))
जो काम करता है, लेकिन बहुत समय लगता है - मेरी सूचकांक dict मूल्यों के लाखों लोगों की है, और मैं समय की खोज हजारों कर रहा हूँ। मैं डेटा संरचनाओं के साथ लचीला हूं और इसी तरह - टाइमस्टैम्प लगभग अनुक्रमिक हैं, ताकि मैं पहले से आखिरी टाइमस्टैम्प से पुनरावृत्ति कर रहा हूं। इसी प्रकार पाठ फ़ाइल में टाइमस्टैम्प जो मैं निर्देश में लोड करता हूं अनुक्रमिक होता है।
अनुकूलन के लिए कोई भी विचार बहुत सराहना की जाएगी।
क्या बड़ा निर्देश अपेक्षाकृत स्थिर है, या आप प्रविष्टियों को अक्सर जोड़ते और हटाते हैं? –
dict प्रभावी रूप से पूरी तरह स्थिर है। – Caligari
सभी उपयोगी उत्तरों के लिए बहुत बहुत धन्यवाद। मेरे पास सुझावों के साथ एक खेल है और ऐसा लगता है कि मैं निश्चित रूप से अपनी समस्या का समाधान करने में सक्षम हूं, गति बढ़ जाती है। घर का समय अब, तो मेरे पास कल एक खेल का थोड़ा और हिस्सा होगा और मेरे अंतिम कार्यान्वयन के साथ अपडेट होगा। – Caligari