क्या कोई लाइब्रेरी फ़ंक्शन है जो किसी सूची / टपल पर बाइनरी खोज करता है और यदि पाया गया है और 'गलत' (-1, कोई नहीं, आदि) आइटम की स्थिति वापस करता है तो नहीं?
मुझे बाइसेक्ट मॉड्यूल में फ़ंक्शंस bisect_left / right मिला , लेकिन वे अभी भी एक पोज़िशन वापस करते हैं, भले ही आइटम सूची में न हो। यह उनके इच्छित उपयोग के लिए पूरी तरह से ठीक है, लेकिन मैं सिर्फ यह जानना चाहता हूं कि कोई सूची में है या नहीं (कुछ भी सम्मिलित नहीं करना चाहते हैं)।
मैंने उपयोग करने bisect_left
और फिर जांचने के बारे में सोचा कि क्या उस स्थिति में आइटम जो मैं खोज रहा हूं उसके बराबर है, लेकिन यह बोझिल लगता है (और मुझे यह भी जांचने की आवश्यकता है कि क्या संख्या मेरी सूची में सबसे बड़ी संख्या से अधिक हो सकती है)। अगर वहाँ एक अच्छा तरीका है मैं इसके बारे में जानना चाहते हैं।
संपादित करें यह स्पष्ट करने के लिए कि मुझे इसके लिए क्या चाहिए: मुझे पता है कि इसके लिए एक शब्दकोश बहुत अच्छी तरह से अनुकूल होगा, लेकिन मैं स्मृति खपत को यथासंभव कम रखने की कोशिश कर रहा हूं। मेरा इच्छित उपयोग एक तरह का डबल-लुक-अप टेबल होगा। मेरे पास तालिका में मूल्यों की एक सूची है और मुझे उनके सूचकांक के आधार पर मूल्यों तक पहुंचने में सक्षम होने की आवश्यकता है। और यह भी कि मैं किसी विशेष मूल्य के सूचकांक को खोजने में सक्षम होना चाहता हूं या यदि कोई मूल्य सूची में नहीं है।
इसके लिए एक शब्दकोश का उपयोग करना सबसे तेज़ तरीका होगा, लेकिन (लगभग) मेमोरी आवश्यकताओं को दोगुना कर देगा।
मैं यह सोच कर यह सवाल पूछ रहा था कि मैंने पायथन पुस्तकालयों में कुछ अनदेखी की होगी। ऐसा लगता है कि मुझे अपना कोड लिखना होगा, जैसा कि Moe ने सुझाव दिया था।
np.searchsorted
तो उपयोगी है। docs.scipy.org/doc/numpy/reference/generated/…