कल्पना कीजिए कि मैं tuples के एक आदेश सूची है:सूची चयन रोकना?
s = [(0,-1), (1,0), (2,-1), (3,0), (4,0), (5,-1), (6,0), (7,-1)]
एक पैरामीटर X
देखते हुए, मैं सभी tuples एक पहला तत्व बराबर या X
अप करने के लिए, लेकिन पहले टपल सहित नहीं से अधिक है का चयन करना चाहते है कि दूसरे तत्व के रूप में -1 है।
उदाहरण के लिए, यदि X = 3
, मैं सूची का चयन करने [(3,0), (4,0)]
एक विचार मैं था चाहते हैं:
E = min (x [0] for x in s if (x [0] >= X) and (x [1] == -1))
साथ कट ऑफ कुंजी प्राप्त करें तब X
के बीच कुंजी के साथ तत्वों का चयन और E
:
R = [x for x in s if X <= x [0] < E]
मुझे देता है यही कारण है कि मैं आर में चाहते हैं, लेकिन यह असली लगती है ly अक्षम, दो टेबल स्कैन शामिल है। मैं इसे लूप में कर सकता था, कुंजियों को बहुत छोटा कर देता था, और ब्रेक तोड़ता था जब मैंने पहली ब्लॉकिंग टुपल मारा था। लेकिन सूची चयन की तुलना में कुत्ते की तरह रनों के लिए।
क्या ऐसा करने के लिए एक सुपर-कुशल, पायथन-एस्क्यू (2.7) तरीका है?
आपका जवाब सुंदर ढंग से मेरी हर चिंता संतुष्ट करता है। मैं खुशी से रोता हूँ। –