मेरे पास निम्न सूची है:
CHOICES = (('8.25', ' 0 '), (' 7.35 ',' 1 '), [...]) मॉडल का उपयोग मैं टपल में पहला मान (उदाहरण के लिए 8.25 - आंशिक रूप से मिमी में )।
तो उदाहरण इनपुट 8.11 जो 0 या 7.30 वापस आएगा, जो 1 आदि लौटाएगा।
जब तक आपके मान सॉर्ट नहीं किए जाते हैं और विकल्पों की संख्या मानते हुए बड़ा नहीं है:
परिणाम = सॉर्ट किया हुआ ([( मैथ। एब्स (कश्मीर इनपुट_वल), v) के लिए (के, वी) विकल्प में)] [0] अन्यथा विकल्प को एक बार सॉर्ट करें और द्विआधारी खोज () का उपयोग करें, जैसा कि में सुझाव दिया गया है अन्य जवाब यह इस तरह दिखता है: <पूर्व> #do इस भाग को केवल एक बार पसंद करें _dict = dict (विकल्प) sorted_keys = sorted ([float (k) के लिए (k, v) विकल्पों में)] # .. L, r = bisect_left (input_value, sorted_keys), bisect_right (input_value, sorted_keys) k = l अगर math.abs (input_value-l) & lt; math.abs (input_value-r) अन्य r परिणाम = options_dict (str (k) )
Comments
Post a Comment