tsql - SQL TOP 1 analog for lists in Python -
यहाँ मेरे इनपुट सीएसवी फ़ाइल का एक उदाहरण है:
... 0.7,0.5 , 0.35,14.4,0.521838919218 0.7,0.5,0.35,14.4,0.521893472678 0.7,0.5,0.35,14.4,0.521948026139 0.7,0.5,0.35,14.4,0.522002579599 ... मुझे इसकी आवश्यकता है शीर्ष पंक्ति का चयन करें जहां अंतिम फ्लोट> यादृच्छिक संख्या मेरा वर्तमान क्रियान्वयन बहुत धीमा है (स्क्रिप्ट में इस और बाह्य चक्रों के बहुत से पुनरावृत्त हैं):
फ़ू में लाइन के लिए: यदि फ्लोट (रेखा [-1]) gt; Random.random (): res = line break ... मैं यह कैसे और बेहतर बना सकता हूं?
संपादित करें:
I को इस कार्य के लिए द्विगुणित करने का सुझाव दिया गया था, लेकिन मुझे नहीं पता कि यह कैसे करना है।
सबसे तेज़ तरीका है द्विभाजक का उपयोग करना (फ्लोट की सूची को मानते हुए आदेश दिया गया है)। आप इसे इस तरह से कर सकते हैं:
आयात करें bisect float_list = [लाइन के लिए [रेखा] foo में] सूचकांक = bisect.bisect (float_list, random.random ()) यदि सूचकांक & lt; फ्लोट सूची को इसके लिए काम करने का आदेश दिया जाना चाहिए।
Comments
Post a Comment